Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ottenere barcode grafico da codice di testo

269 views
Skip to first unread message

mario rossi

unread,
Jun 17, 2022, 6:53:54 PM6/17/22
to
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?

mario rossi

unread,
Jun 18, 2022, 9:01:31 AM6/18/22
to
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?

mario rossi

unread,
Jun 18, 2022, 9:22:34 AM6/18/22
to
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?

mario rossi

unread,
Jun 18, 2022, 10:37:32 AM6/18/22
to
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?

RobertoA

unread,
Jun 18, 2022, 11:05:05 AM6/18/22
to
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



shado gps

unread,
Jun 19, 2022, 5:19:07 PM6/19/22
to
non basta solo il font, ci vuole una conversione.

prova con questo link.

https://grandzebu.net/informatique/codbar-en/codbar.htm

mario rossi

unread,
Jun 19, 2022, 6:14:17 PM6/19/22
to
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

BFS

unread,
Jun 20, 2022, 2:43:15 AM6/20/22
to
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

mario rossi

unread,
Jun 21, 2022, 7:55:26 AM6/21/22
to
interessante

RobertoA

unread,
Jun 21, 2022, 10:36:48 AM6/21/22
to
E dove lo trovi il font Code39 ?
Non fa parte della dotazione standard dei font Windows

Karl Donaubauer

unread,
Jun 21, 2022, 10:43:08 AM6/21/22
to
Salve,

RobertoA:
> ...
> E dove lo trovi il font Code39 ?
> 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

BFS

unread,
Jun 21, 2022, 10:49:43 AM6/21/22
to
esempio da qui

https://fonts.google.com/specimen/Libre+Barcode+39#standard-styles

lo copi sulla cartella dei font

BFS
0 new messages