Cas détaillé - Code barre avec YBARCODE
YBARCODE : extension des codes barres
YBARCODE est un type de code barre qui génère plus de 100 exemple de codes barre en utilisant une construction de chaîne HMP par programme pour décrire le code barre Traite notamment:
| Quelques extraits :
|
Rappel de la mise en oeuvre
Par exemple, pour obtenir ce Maxicode pour UPS
On utilise dans le masque écran un code barre de type DLL YBARCODE, et ici on mets un exemple dans le champ ‘Exemple’ pour illustrer un rendu, qui sera ensuite modifié par le programme diva.
Le rendu final est obtenu par programmation. Le fichier /divalto/exemples/codebarre/demoybarcode.dhsp donne le ‘test_maxicode_ups’ dans l’extrait ci-dessous.
Utilisation de YBARCODE via sa DLL
La référence pour l’utilisation est dans le fichier /divalto/exemples/codebarre/demoybarcode.dhsp et plus largement dans le sous-projet exemple fourni.
En voici un extrait, qui illustre spécifiquement
le maxicode UPS dans
test_maxicode_ups
le EAN128 B via C dans
test_gs1_128c_b
;Exemple d'utilisation de la dll ybarcode.dll
;1) les commandes
;- obligatoires
;<b>nnn numéro du code barre
;<d> ou <data>le texte du code barre
;
;- facultatives et selon le type de code barres
;<height>nnnn ou <h>nnnn hauteur du code barre, par défaut 50
;<whitesp>nnn ou <w>nnnn taille de l'espace devant le dessin du code barre
;<scale>nnn échelle de dessin par défaut 1
;
;<border>nnn taille du bord autour du code barre
;<box> ajout du dessin d'une boite autour du code barre
;<bind> ajout de dessin de bord devant et dernière le code barre
;
;<reverse> ou <r> inverse le dessin noir/blanc devient blanc/noir
;<fg>hhhhhh couleur du fond
;<bg>hhhhhh couleur des barres
;
;<rotate>nnn rotation 0 ou 90 ou 180 ou 270
;
;<p> ou <primary> texte bis pour les code barres Maxicode et els Composites
;<gs1> traite la donnée au format GS1
;<null>nnn numéro du caractère représentant le caractère NULL ($00)
;
;<cols>nnnn nombre de colonnes pour le code barre PDF417
;<vers>nnnn numéro de version pour le code barre QR Code
;<ver>nnnn numéro de version (champ option_2)
;<secure>nnnn numéro de niveau de correction pour les codes barres PDF417 et QR Code
;<mode>nnnn mode d'encodage pour les codes barres Maxicode et les Composites
;
;<option_1>nnnn pour ecrire dans le champ option_1
;<option_2>nnnn pour ecrire dans le champ option_2
;<option_3>nnnn pour ecrire dans le champ option_3
;<rows>nnnn pour ecrire dans le champ rows
;<width>nnnn pour ecrire dans le champ width
;attention :
;- la commande <data> (ou <d>) DOIT TOUJOURS ETRE LA DERNIERE COMMANDE
;
;- si les données peuvent contenir les caractères < ou > alors il faut utiliser
;l'instruction hmpencode pour encoder la valeur de <data> (ou<d>) et la valeur de
;la commande <primary> (ou <p>)
;
;2) les types de codes barres
;
; 1: Code 11 51: Pharma One-Track 89: ITF-14
; 2: Standard 2of5 52: PZN 90: KIX Code
; 3: Interleaved 2of5 53: Pharma Two-Track 92: Aztec Code
; 4: IATA 2of5 55: PDF417 93: DAFT Code
; 6: Data Logic 56: PDF417 Trunc 97: Micro QR Code
; 7: Industrial 2of5 57: Maxicode 98: HIBC Code 128
; 8: Code 39 58: QR Code 99: HIBC Code 39
; 9: Extended Code 39 60: Code 128-B 102: HIBC Data Matrix
;13: EAN 63: AP Standard Customer 104: HIBC QR Code
;16: GS1-128 66: AP Reply Paid 106: HIBC PDF417
;18: Codabar 67: AP Routing 108: HIBC MicroPDF417
;20: Code 128 68: AP Redirection 110: HIBC Codablock-F
;21: Leitcode 69: ISBN 128: Aztec Runes
;22: Identcode 70: RM4SCC 129: Code 23
;23: Code 16k 71: Data Matrix 130: Comp EAN
;24: Code 49 72: EAN-14 131: Comp GS1-128
;25: Code 93 74: Codablock-F 132: Comp Databar-14
;28: Flattermarken 75: NVE-18 133: Comp Databar Ltd
;29: Databar-14 76: Japanese Post 134: Comp Databar Ext
;30: Databar Limited 77: Korea Post 135: Comp UPC-A
;31: Databar Extended 79: Databar-14 Stack 136: Comp UPC-E
;32: Telepen Alpha 80: Databar-14 Stack Omni 137: Comp Databar-14 Stack
;34: UPC-A 81: Databar Extended Stack 138: Comp Databar Stack Omni
;37: UPC-E 82: Planet 139: Comp Databar Ext Stack
;40: Postnet 84: MicroPDF 140: Channel Code
;47: MSI Plessey 85: USPS OneCode 141: Code One
;49: FIM 86: UK Plessey 171: data matrix carré
;50: Logmars 87: Telepen Numeric
;à partir de la version de la dll depuis 2017, on a ajouté le code 171, Data matrix comme le code 71
;mais en forçant le mode "dessin carré" sinon selon la valeur du code barre le dessin du data matrix s'étale en largeur puis en hauteur etc
;ce qui donne parfois un dessin "rectangulaire" , un peu comme s'il y avait deux data matrix côte à côte et donc cela peut déborder de l'objet codebarre
;et donc devenir illisible, le code 171 est donc la même chose que le code 71 mais avec l'option3 a la valeur 100,
;on peut aussi écrire <b>71<option_3>100<d>01950902101015010 => cella donne toujours un dessin carré
;
;3) les erreurs possibles
;4) pour passer la dll ybarcode en mode debug
;créer le fichier ybarcode.ini
;et mettre dans le chapitre
;[ybarcode]
;debug=1
;lancez votre programme , le résultat du debug se trouve dans le fichier
;ybarcode.log
;
;5) voir le site
; http://www.zint.org.uk/zintSite/Manual.aspx
; pour la doc complète de la bibliothèque zint
;6) au 31/08/2009 ybarcode.dll contient
;attention le maxicode ne marche pas dans cette version
;ybarcode.dll version 1.01 du 21/08/2009
;zint version 2.2.1 du 18/08/2009 (plus correction jusqu'au 26/08/2009 patchset367)
;qrencode version 3.1.0 du 06/06/2009
;zlib version 1.2.3 du 17/07/2005
;libpng version 1.2.37 du 04/06/2009
;
;au 17/08/2010 ybarcode.dll contient
;ybarcode.dll version 1.04 du 17/06/2010"
;zint version 2.3.2 du 29/05/2010"
;qrencode version 3.1.1 du 03/02/2010"
;zlib version 1.2.5 du 19/04/2010"
;libpng version 1.2.37 du 04/06/2009"
;
;7) affichage et impression
;La dll ybarcode génère le code barre dans un fichier de travail de type png
;Le runtime harmony prend en charge la création et la suppresion de ce fichier de travail
;Le programme diva n'a donc pas à traiter ce fichier.
;L'impression du code barre se fait selon la valeur du champ "largeur d'un élément"
;dans l'objet code barre de xwin
;la formule utilisée est
; nombre de point x du fichier png * largeur d'un élément
; nombre de point y du fichier png * largeur d'un élément
;Ceci donne une longueur et une largeur en dixième de millimètre.
;Vous pouvez augmenter ou réduire la taille du dessin du code barres
;en augmentant ou en réduisant la valeur du champ "largeur d'un élément"
;
;Exception, le code barre maxicode est généré par la dll ybarcode avec une taille de 1 pouce
;cette taille est multipliée par la valeur du champ "largeur d'un element"
;puis divisée par la valeur 34
;Si la valeur du champ "largeur d'un élément" est égale à 34
;ce qui correspond à la valeur par défaut de l'objet code barre
;alors la taille du maxicode est de "taille*34/34", c'est à dire de un pouce
;Ainsi la valeur par défaut (34) est la valeur 'pivot' de dessin
;
;En réduisant ou en agrandissant la valeur du champ "largeur d'un élément"
;vous pouvez réduire ou agrandir le dessin du code barre maxicode
define masquexmi = "demoybarcode.dhoi"
public record demoybarcode.dhsd test test = " "
record * htdf tdf
1 st x
1 bb x
;http://www.zint.org.uk/zintSite/Manual.aspx?page=11
1 enreg 1024
1 CAR_RS 1
1 CAR_GS 1
1 CAR_ET 1
;Postcode data which can consist of up to 9 digits (for mode 2) or up to 6 alphanumeric characters (for mode 3). Remaining unused characters should be filled with the SPACE character (ASCII 32).
1 codepostal 9 ;obligatoirement de 9
;Three digit country code according to ISO 3166 (see Appendix B).
;http://www.zint.org.uk/zintSite/Manual.aspx?page=15
1 country 3
;Three digit service code. This depends on your parcel courier.
1 servicecode 3
1 SHIFTC 1
procedure test_gs1_128c_b
beginp
SHIFTC = 94
enreg = \
"[)>" & CAR_RS & \ ;entête
"01" & CAR_GS & "96" & \ ;Transportation data header. 5 caractères avec le code GS, obligatoire
"1Z00004951" & CAR_GS & \ ;Tracking number. entre 10 et 11 caractères (uniquement des majuscules + chiffres), obligatoire
"UPSN" & CAR_GS & \ ;Standard Carrier Alpha Code (SCAC). 4 carac + GS , obligatoire
"9BCJ43" & CAR_GS & \ ;UPS shipper number. 6 carac (uniquement des majuscules + chiffres) obligatoire
"365" & CAR_GS & \ ;Julian day of pickup. 3 caractères numériques , obligatoire
"625TH9" & CAR_GS & \ ;Shipment ID number. optionnel, 0-30 carac majuscules+chiffres. mettre toujours le code GS même s'il n'y a pas de donnée
"1/1" & CAR_GS & \ ;Package X of Y. obligatoire 1-3 chiffres pour x et 1-3 chiffres pour Y. et avec le caractere \ entre les deux
"10" & CAR_GS & \ ;Package weight in pounds. obligatoire 1-3 chiffres
"Y" & CAR_GS & \ ;Address validation. obligatoire . Y ou N
"15 RUE ICARE" & CAR_GS & \ ;Ship-to address. optionnel . 0-35 carac majuscules+chiffees mettre toujours le code GS même s'il n'y a pas de donnée
"TANNERIES" & CAR_GS & \ ;Ship-to city. obligatoire. 1-20 carac majuscules+chiffees
"FR" & CAR_RS & \ ;Ship-to state. obligatoire. 2 carac majuscules , RS indique la fin du champ de du texte
CAR_ET ;EOT indique la fin des datas
test.text2 = enreg
test.text2 = modify("[)>","",test.text2)
test.text2 = modify(CAR_GS," ",test.text2)
test.text2 = modify(CAR_RS," ",test.text2)
test.text2 = modify(CAR_ET," ",test.text2)
enreg = hmpencode(left(enreg))
test.text1 = "57 maxicode UPS"
;mode 2 et 3 son en fait identique
test.ttt = "<b>57<mode>3<primary>" & codepostal & country & servicecode & "<d>" & left(enreg)
PrintBegin
xmiprint masquexmi 1
PrintEnd
endp
procedure test_maxicode_ups
beginp
CAR_RS = $1E ;30
CAR_GS = $1D ;29
CAR_ET = $04 ;04
;primary message codepostal + contry + code du service
codepostal = "67000"
country = 250 ;france
servicecode = 068
;data
enreg = \
"[)>" & CAR_RS & \ ;entête
"01" & CAR_GS & "96" & \ ;Transportation data header. 5 caractères avec le code GS, obligatoire
"1Z00004951" & CAR_GS & \ ;Tracking number. entre 10 et 11 caractères (uniquement des majuscules + chiffres), obligatoire
"UPSN" & CAR_GS & \ ;Standard Carrier Alpha Code (SCAC). 4 carac + GS , obligatoire
"9BCJ43" & CAR_GS & \ ;UPS shipper number. 6 carac (uniquement des majuscules + chiffres) obligatoire
"365" & CAR_GS & \ ;Julian day of pickup. 3 caractères numériques , obligatoire
"625TH9" & CAR_GS & \ ;Shipment ID number. optionnel, 0-30 carac majuscules+chiffres. mettre toujours le code GS même s'il n'y a pas de donnée
"1/1" & CAR_GS & \ ;Package X of Y. obligatoire 1-3 chiffres pour x et 1-3 chiffres pour Y. et avec le caractere \ entre les deux
"10" & CAR_GS & \ ;Package weight in pounds. obligatoire 1-3 chiffres
"Y" & CAR_GS & \ ;Address validation. obligatoire . Y ou N
"15 RUE ICARE" & CAR_GS & \ ;Ship-to address. optionnel . 0-35 carac majuscules+chiffees mettre toujours le code GS même s'il n'y a pas de donnée
"TANNERIES" & CAR_GS & \ ;Ship-to city. obligatoire. 1-20 carac majuscules+chiffees
"FR" & CAR_RS & \ ;Ship-to state. obligatoire. 2 carac majuscules , RS indique la fin du champ de du texte
CAR_ET ;EOT indique la fin des datas
test.text2 = enreg
test.text2 = modify("[)>","",test.text2)
test.text2 = modify(CAR_GS," ",test.text2)
test.text2 = modify(CAR_RS," ",test.text2)
test.text2 = modify(CAR_ET," ",test.text2)
enreg = hmpencode(left(enreg))
test.text1 = "57 maxicode UPS"
;mode 2 et 3 son en fait identique
test.ttt = "<b>57<mode>3<primary>" & codepostal & country & servicecode & "<d>" & left(enreg)
PrintBegin
xmiprint masquexmi 1
PrintEnd
endp
main
xmiload masquexmi
tdf.Name = "demoybarcode.txt"
st = fopen(tdf,"p")
if st <> 0
display "erreur à l'ouverture du fichier demoybarcode.txt"
ProgramExit
endif
PrintBegin
do
st = fread (tdf, enreg)
if st = 0
if mid(test,1,1) <> ";" ;c'est un commentaire ?
bb = val(hmpseek(enreg,"b"," ")) ;c'est une commande code barre ?
if bb = 0
test.text1 = enreg ;nom du code barre
else
test.text2 = enreg
test.ttt = enreg
if bb = 23 or bb = 24 or bb = 74
xmiprint masquexmi 2 ;code barre plus haut
else
xmiprint masquexmi 1
endif
endif
endif
endif
while st = 0
wend
test_maxicode_ups
test_gs1_128c_b
PrintEnd
fclose(tdf)
ProgramExit
Plus de 100 exemples de code barre
Le fichier /divalto/exemples/codebarre/demoybarcod.txt illustre le paramétrage HMP de plus de 100 codes barres. En voici un extrait
;
Code 11
<b>1<height>40<border>10<d>8765432164
;
Code 2 of 5 Standard
<b>2<height>40<border>10<d>87654321
;
Interleaved 2 of 5
<b>3<height>40<border>10<d>87654321
;
Code 2 of 5 IATA
<b>4<height>40<border>10<d>87654321
;
Code 2 of 5 Data Logic
<b>6<height>40<border>10<d>87654321
;
Code 2 of 5 Industrial
<b>7<height>40<border>10<d>87654321
;
Code 39
<b>8<height>40<border>10<d>CODE39
;
Extended Code 39
<b>9<height>40<border>10<d>Code 39e
;
EAN8
<b>13<height>40<border>10<d>7654321
;
EAN8 - 2 digits add on
<b>13<height>40<border>10<d>7654321+21
;
EAN8 - 5 digits add-on
<b>13<height>40<border>10<d>7654321+54321
;
EAN13
<b>13<height>40<border>10<d>210987654321
;
EAN13 - 2 digits add-on
<b>13<height>40<border>10<d>210987654321+21
;
EAN13 - 5 digits add-on
<b>13<height>40<border>10<d>210987654321+54321
;
GS1-128
<b>16<height>40<border>10<d>[01]98898765432106[3202]012345[15]991231
;
CodaBar
<b>18<height>40<border>10<d>D765432C
;
Code 128
<b>20<height>40<border>10<d>Code 128
;
Deutshe Post Leitcode
<b>21<height>40<border>10<d>3210987654321
;
Deutche Post Identcode
<b>22<height>40<border>10<d>10987654321
;
Code 16k
<b>23<height>40<border>10<d>Demonstration Code 16k symbol generated by libzint
;
Code 16k
<b>23<gs1><border>10<d>[01]98898765432106[02]13012345678909[10]1234567ABCDEFG[3202]012345[15]991231
;
Code 49
<b>24<d>Demonstration Code 49
;
Code 93
<b>25<height>40<border>10<d>Code 93
;
Flattermarken
<b>28<height>40<border>10<d>87654321
;
GS1 DataBar-14
<b>29<height>40<border>10<d>2001234567890
;
GS1 DataBar Limited
<b>30<w>2<height>40<border>10<w>2<d>31234567890
;
GS1 DataBar Expanded
<b>31<height>40<border>10<d>[01]90012345678908[3103]001750
;
Telepen Alpha
<b>32<height>40<border>10<d>Telepen
;
UPC A
<b>34<height>40<border>10<d>10987654321
;
UPC A - 2 digit add-on
<b>34<height>40<border>10<d>10987654321+21
;
UPC A - 5 digit add-on
<b>36<height>40<border>10<d>10987654321+54321
;
UPC E
<b>37<height>40<border>10<d>654321
;
UPC E - 2 digit add-on
<b>37<height>40<border>10<d>654321+21
;
UPC E - 5 digit add-on
<b>37<height>40<border>10<d>654321+54321
;
PostNet-6
<b>40<height>40<border>10<d>54321
;
PostNet-10
<b>40<height>40<border>10<d>987654321
;
PostNet-12
<b>40<height>40<border>10<d>10987654321
;
MSI Code
<b>47<height>40<border>10<d>87654321
;
FIM
<b>49<height>40<border>10<d>D
;
LOGMARS
<b>50<height>40<border>10<d>LOGMARS
;
Pharmacode One-Track
<b>51<height>40<border>10<d>123456
;
Pharmazentralnumber
<b>52<height>40<border>10<d>654321
;
Pharmacode Two-Track
<b>53<height>40<border>10<d>12345678
;
PDF417
<b>55<border>10<d>Demonstration PDF417 symbol generated by libzint
;
PDF417 Truncated
<b>56<border>10<d>Demonstration PDF417 symbol generated by libzint
;
Maxicode
<b>57<primary>999999999840012<height>40<border>10<d>Demonstration Maxicode symbol generated by libzint
;
QR Code
<b>58<border>10<d>Demonstration QR Code symbol generated by libzint
;
Code 128 Subset B
<b>60<height>40<border>10<d>87654321
;
Australian Post Standard Customer
<b>63<height>40<border>10<d>87654321
;
Australian Post Customer 2
<b>63<height>40<border>10<d>87654321AUSPS
;
Australian Post Customer 3
<b>63<height>40<border>10<d>87654321 AUSTRALIA
;
Australian Post Reply Paid
<b>66<height>40<border>10<d>87654321
;
Australian Post Routing
<b>67<height>40<border>10<d>87654321
;
Australian Post Redirection
<b>68<height>40<border>10<d>87654321
;
ISBN Code
<b>69<height>40<border>10<d>0333638514
;
Royal Mail 4 State
<b>70<height>40<border>10<d>ROYALMAIL
;
Data Matrix
<b>71<border>10<d>Demonstration Data Matrix symbol generated by libzint
;
Data Matrix
<b>71<gs1><border>10<d>[01]98898765432106[02]13012345678909[10]1234567ABCDEFG[3202]012345[15]991231
;
Data Matrix ECC 200
<b>71<mode>3<border>10<d>Demonstration Data Matrix symbol generated by libzint
;
EAN-14
<b>72<height>40<border>10<d>3210987654321
;
Codablock-F
<b>74<height>40<border>10<d>Demonstration Codablock-F symbol generated by libzint
;
Codablock-F
<b>74<height>40<gs1><border>10<d>[01]98898765432106[02]13012345678909[10]1234567ABCDEFG[3202]012345[15]991231
;
NVE-18
<b>75<height>40<border>10<d>76543210987654321
;
Japanese Post
<b>76<height>40<border>10<d>10000131-3-2-503
;
Korea Post
<b>77<height>40<border>10<d>123456
;
GS1 DataBar Truncated
<b>29<height>40<border>10<d>1234567890
;
GS1 DataBar Stacked
<b>79<height>40<border>10<d>1234567890
;
GS1 DataBar Stacked Omnidirectional
<b>80<height>40<border>10<d>3456789012
;
GS1 DataBar Expanded Stacker
<b>81<height>40<border>10<d>[01]98898765432106[3202]012345[15]991231
;
Planet 12 Digit
<b>82<height>40<border>10<d>10987654321
;
Planet 14 Digit
<b>82<height>40<border>10<d>3210987654321
;
Micro PDF417
<b>84<height>40<border>10<d>Demonstration MicroPDF417 symbol generated by libzint
;
USPS OneCode 4-State Customer Barcode
<b>85<height>40<border>10<d>01234567094987654321
;
Plessey Code with bidirectional reading support
<b>86<height>40<border>10<d>87654321
;
Telepen Numeric
<b>87<height>40<border>10<d>87654321
;
ITF-14
<b>89<height>40<border>10<d>3210987654321
;
KIX Code
<b>90<height>40<border>10<d>1231FZ13Xhs
;
Aztec Code
<b>92<border>10<d>Demonstration Aztec Code symbol generated by libzint
;
Aztec Code
<b>92<gs1><border>10<d>[01]98898765432106[02]13012345678909[10]1234567ABCDEFG[3202]012345[15]991231
;
DAFT Code
<b>93<height>40<border>10<d>daftdaftdaftdaftdaftdaftdaft
;
Micro QR Code
<b>97<border>10<d>MicroQR Code
;
HIBC LIC 128
<b>98<height>40<border>10<d>A99912345/9901510X3
;
HIBC LIC 39
<b>99<height>40<border>10<d>A123BJC5D6E71
;
HIBC LIC Data Matrix
<b>102<height>40<border>10<d>A99912345/9901510X3
;
HIBC LIC QR-Code
<b>104<height>40<border>10<d>A99912345/9901510X3
;
HIBC LIC PDF417
<b>106<height>40<border>10<d>A99912345/9901510X3
;
HIBC LIC MicroPDF417
<b>108<height>40<border>10<d>A99912345/9901510X3
;
HIBC LIC Codablock F
<b>110<height>40<border>10<d>A99912345/9901510X3
;
Aztec Runes
<b>128<height>40<border>10<d>125
;
Code 23
<b>129<height>40<border>10<d>12345678
;
EAN-8 Composite with CC-A
<b>130<mode>1<primary>1234567<height>40<border>10<d>[21]A12345678
;
EAN-13 Composite with CC-A
<b>130<mode>1<primary>331234567890<height>40<border>10<d>[99]1234-abcd
;
UCC/EAN-128 Composite with CC-A
<b>131<mode>1<primary>[01]03212345678906<height>40<border>10<d>[10]1234567ABCDEFG
;
UCC/EAN-128 Composite with CC-C
<b>131<mode>3<primary>[00]030123456789012340<height>40<border>10<d>[02]13012345678909[10]1234567ABCDEFG
;
RSS-14 Composite with CC-A
<b>132<mode>1<primary>361234567890<height>40<border>10<d>[11]990102
;
RSS Limited Composite with CC-B
<b>133<mode>2<primary>351234567890<height>40<border>10<d>[21]abcdefghijklmnopqrstuv
;
RSS Expanded Composite with CC-A
<b>134<mode>1<primary>[01]93712345678904[3103]001234<height>40<border>10<d>[91]1A2B3C4D5E
;
UPC-A Composite with CC-A
<b>135<mode>1<primary>10987654321<height>40<border>10<d>[15]021231
;
UPC-E Composite with CC-A
<b>136<mode>1<primary>121230<height>40<border>10<d>[15]021231
;
RSS-14 Stacked Composite with CC-A
<b>137<mode>1<primary>341234567890<height>40<border>10<d>[17]010200
;
RSS-14 Stacked Omnidirectional Composite with CC-A
<b>138<mode>1<primary>341234567890<height>40<border>10<d>[17]010200
;
RSS Expanded Stacked Composite with CC-A
<b>139<mode>1<primary>[01]00012345678905[10]ABCDEF<height>40<border>10<d>[21]12345678
;
Channel Code
<b>140<height>40<border>10<d>12345
;
Code One
<b>141<height>40<border>10<d>Demonstration Code One symbol generated by libzint
;
Grid Matrix avec la derniere dll ybarcode version 2.43 pour ecrire un tres grand nombre d'infos
<b>142<height>40<d>Grid Matrix avec la derniere dll ybarcode version 2.43 pour ecrire un tres grand nombre d'infos
;
Data Matrix mais toujours carré en fait on <b>71<option_3>100<border>10<d>01950902101015010
<b>171<border>10<d>Demonstration Data Matrix symbol generated by libzint
;
Data Matrix mais toujours carré en fait on <b>71<option_3>100<gs1><d>01950902101015010
<b>171<gs1><border>10<d>[01]98898765432106[02]13012345678909[10]1234567ABCDEFG[3202]012345[15]991231
;
Data Matrix ECC 200 mais toujours carré en fait on <b>71<option_3>100<mode>3<border>10<d>01950902101015010
<b>171<mode>3<border>10<d>Demonstration Data Matrix symbol generated by libzint