Newsgroup: it.comp.appl.access
Titolo: ottenere barcode grafico da codice di testo

buongiorno a tutti, possiedo un codice di tipo stringa come segue per esempio
 
BIGL000008
 
ho un foglio cartaceo con già il barcode grafico e se leggo il barcode grafico con un lettore di barcode in emulazione tastiera sul PC mi scrive BIGL000008
 
la mia necessità è creare tutti i barcode da Access per i codici ad esempio
BIGL000009
BIGL000010
BIGL000101
eccetera
 
è possibile?


ho fatto questo tentativo
 
ho creato una tabella con un campo codice ed ho inserito i valori
BIGL000009 , BIGL000010, BIGL000110
 
poi ho creato un report con un campo associato al codice e font ho scelto  
Libre Barcode 128 Text
 
e in effetti sono diventati tutti barcode con sotto il codice testuale, li ho stampati ma nulla il lettore di barcode non li legge
forse va usato un altro font? sbaglio qualcosa?


un altro tentativo che ho fatto è questo
possiedo un foglio excel A4 con già i barcode che mi servono e quando stampo il pdf il lettore li legge in emulazione tastiera, 
allora ho provato a fare lo screenshot di uno di questi e incollarlo in un report di access, incredibilmente stampato da acess non lo legge.
forse non è la stessa dimensione? gli manca qualcosa che non si vede?


ho scoperto che danea usa anche il font barcode CODE 128 quindi ho scaricato tale font ho ricreato il report ma nulla non legge il barcode stampato in cartaceo
mentre legge tranquillamente i barcode stampati dal file pdf generato in Danea.
 
qualche aiuto?


Prova a leggere con uno smartphone il barcode stampato
Molte app, oltre al contenuto del barcode, ti scrivono anche le 
proprieta' del codice letto
Quel che devi verificare sono due cose:
 
1- se il codice che stampi e' leggibile (e con l'app da telefono 
dovresti verificarlo)
 
2- se il lettore che stai usando (ad esempio CODE 128) e' predisposto 
per leggere il tipo di barcode che hai stampato, attenzione che alcuni 
lettori riescono a leggere un sacco di standard ma per questioni di 
efficienza nella lettura potrebbero essere 'attivi' solo alcuni standard
 
A mia esperienza, stampare barcode coi font, ci sono sempre problemi di 
qualche tipo
 
 
 

non basta solo il font, ci vuole una conversione.
 
prova con questo link.
 
https://grandzebu.net/informatique/codbar-en/codbar.htm
 
 


ho risolto in questo modo, infatti come detto da shado gps non basta scrivere qualcosa e poi cambiargli il font in code128 va fatta una conversione
 
se il campo "codice" è testuale e il campo "barcode" deve contenere il campo "codice" convertito in code 128 su after update dell'inserimento del campo codice si dovrà eseguire
 
me.barcode=code128(me.codice)
 
dove code128 è la funzione qui sotto:
già provato e così legge i barcode
 
*** CODE ***
 
Public Function code128$(chaine$)
  'Cette fonction est régie par la Licence Générale Publique Amoindrie GNU (GNU LGPL)
  'This function is governed by the GNU Lesser General Public License (GNU LGPL)
  'V 2.0.0
  'Paramètres : une chaine
  'Parameters : a string
  'Retour : * une chaine qui, affichée avec la police CODE128.TTF, donne le code barre
  '         * une chaine vide si paramètre fourni incorrect
  'Return : * a string which give the bar code when it is dispayed with CODE128.TTF font
  '         * an empty string if the supplied parameter is no good
  Dim i%, checksum&, mini%, dummy%, tableB As Boolean
  code128$ = ""
  If Len(chaine$) > 0 Then
  'Vérifier si caractères valides
  'Check for valid characters
    For i% = 1 To Len(chaine$)
      Select Case Asc(Mid$(chaine$, i%, 1))
      Case 32 To 126, 203
      Case Else
        i% = 0
        Exit For
      End Select
    Next
    'Calculer la chaine de code en optimisant l'usage des tables B et C
    'Calculation of the code string with optimized use of tables B and C
    code128$ = ""
    tableB = True
    If i% > 0 Then
      i% = 1 'i% devient l'index sur la chaine / i% become the string index
      Do While i% <= Len(chaine$)
        If tableB Then
          'Voir si intéressant de passer en table C / See if interesting to switch to table C
          'Oui pour 4 chiffres au début ou à la fin, sinon pour 6 chiffres / yes for 4 digits at start or end, else if 6 digits
          mini% = IIf(i% = 1 Or i% + 3 = Len(chaine$), 4, 6)
          GoSub testnum
          If mini% < 0 Then 'Choix table C / Choice of table C
            If i% = 1 Then 'Débuter sur table C / Starting with table C
              code128$ = Chr$(210)
            Else 'Commuter sur table C / Switch to table C
              code128$ = code128$ & Chr$(204)
            End If
            tableB = False
          Else
            If i% = 1 Then code128$ = Chr$(209) 'Débuter sur table B / Starting with table B
          End If
        End If
        If Not tableB Then
          'On est sur la table C, essayer de traiter 2 chiffres / We are on table C, try to process 2 digits
          mini% = 2
          GoSub testnum
          If mini% < 0 Then 'OK pour 2 chiffres, les traiter / OK for 2 digits, process it
            dummy% = Val(Mid$(chaine$, i%, 2))
            dummy% = IIf(dummy% < 95, dummy% + 32, dummy% + 105)
            code128$ = code128$ & Chr$(dummy%)
            i% = i% + 2
          Else 'On n'a pas 2 chiffres, repasser en table B / We haven't 2 digits, switch to table B
            code128$ = code128$ & Chr$(205)
            tableB = True
          End If
        End If
        If tableB Then
          'Traiter 1 caractère en table B / Process 1 digit with table B
          code128$ = code128$ & Mid$(chaine$, i%, 1)
          i% = i% + 1
        End If
      Loop
      'Calcul de la clé de contrôle / Calculation of the checksum
      For i% = 1 To Len(code128$)
        dummy% = Asc(Mid$(code128$, i%, 1))
        dummy% = IIf(dummy% < 127, dummy% - 32, dummy% - 105)
        If i% = 1 Then checksum& = dummy%
        checksum& = (checksum& + (i% - 1) * dummy%) Mod 103
      Next
      'Calcul du code ASCII de la clé / Calculation of the checksum ASCII code
      checksum& = IIf(checksum& < 95, checksum& + 32, checksum& + 105)
      'Ajout de la clé et du STOP / Add the checksum and the STOP
      code128$ = code128$ & Chr$(checksum&) & Chr$(211)
    End If
  End If
  Exit Function
testnum:
  'si les mini% caractères à partir de i% sont numériques, alors mini%=0
  'if the mini% characters from i% are numeric, then mini%=0
  mini% = mini% - 1
  If i% + mini% <= Len(chaine$) Then
    Do While mini% >= 0
      If Asc(Mid$(chaine$, i% + mini%, 1)) < 48 Or Asc(Mid$(chaine$, i% + mini%, 1)) > 57 Then Exit Do
      mini% = mini% - 1
    Loop
  End If
Return
End Function
 
*** END CODE ***
 
fonte: 
https://grandzebu.net/informatique/codbar-en/code128.htm
 


senza tanti sbattimenti puoi anche usare il font code 39
unica accortezza quando vai stampare la stringa con quel font è quella 
di mettere * prima e dopo la stringa
serve per far capire al lettore in emulatore tastiera l'inizio e la fine 
del barcode
 
BFS


interessante


E dove lo trovi il font Code39 ?
Non fa parte della dotazione standard dei font Windows

 Non fa parte della dotazione standard dei font Windows
 
http://www.donkarl.com/it?FAQ8.3
 
 
Ciao
Karl
*********
Access News: 
https://youtu.be/kUkLjfYwgg8
 
Access DevCon: 
http://AccessDevCon.com
 
Access FAQ: 
https://www.donkarl.com/it
 


esempio da qui
 
https://fonts.google.com/specimen/Libre+Barcode+39#standard-styles
 
 
lo copi sulla cartella dei font
 
BFS