File: barcodewriter.html

package info (click to toggle)
libpostscriptbarcode 20200401-1.1
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 3,920 kB
  • sloc: ansic: 563; makefile: 304; perl: 277; xml: 243; sh: 107; lisp: 92; java: 73; python: 45; ruby: 21
file content (3525 lines) | stat: -rw-r--r-- 397,272 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta http-equiv="Content-Style-Type" content="text/css" />
  <meta name="generator" content="pandoc" />
  <title>Barcode Writer in Pure PostScript</title>
  <style type="text/css">code{white-space: pre;}</style>
  <style type="text/css">
a.sourceLine { display: inline-block; line-height: 1.25; }
a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; }
a.sourceLine:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode { white-space: pre; position: relative; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
code.sourceCode { white-space: pre-wrap; }
a.sourceLine { text-indent: -1em; padding-left: 1em; }
}
pre.numberSource a.sourceLine
  { position: relative; left: -4em; }
pre.numberSource a.sourceLine::before
  { content: attr(title);
    position: relative; left: -1em; text-align: right; vertical-align: baseline;
    border: none; pointer-events: all; display: inline-block;
    -webkit-touch-callout: none; -webkit-user-select: none;
    -khtml-user-select: none; -moz-user-select: none;
    -ms-user-select: none; user-select: none;
    padding: 0 4px; width: 4em;
    color: #aaaaaa;
  }
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa;  padding-left: 4px; }
div.sourceCode
  {  }
@media screen {
a.sourceLine::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
  </style>
</head>
<body>
<!--

This documentation is auto-generated from the BWIPP wiki at
https://github.com/bwipp/postscriptbarcode/wiki using the pandoc-based build
system in the wikidocs/__pandoc directory of the BWIPP repository:

https://github.com/bwipp/postscriptbarcode.git

-->

<h1>Barcode Writer in Pure PostScript</h1>

<p>Barcode Writer in Pure Postscript is an award-winning open source barcode
maker that facilitates the printing of all major barcode symbologies entirely
within level 2 PostScript, ideal for variable data printing. The complete
process of generating printed barcodes is performed entirely within the printer
(or print system) so that it is no longer the responsibility of your
application or a library. There is no need for any barcode fonts and the
flexibility offered by direct PostScript means you can avoid re-implementing
barcode generator code or migrating to new libraries whenever your project
language needs change.</p>

<p>The project homepage is at 
<a href="https://bwipp.terryburton.co.uk">https://bwipp.terryburton.co.uk</a></p>

<p>This is the main resource for the project providing the latest downloads of
code and documentation, as well as access to the support and development
mailing list.</p>

<p>To make it as easy as possible to incorporate this project into your own
systems, whether they be freely available or proprietary, it is licensed under
the permissive MIT/X-Consortium License.</p>

<blockquote>
This documentation is auto-generated from the BWIPP wiki at <a href="https://github.com/bwipp/postscriptbarcode/wiki">https://github.com/bwipp/postscriptbarcode/wiki</a> using the pandoc-based build system in the
<code>wikidocs/__pandoc/</code> directory of the BWIPP repository:
<a href="https://github.com/bwipp/postscriptbarcode.git">https://github.com/bwipp/postscriptbarcode.git</a>
</blockquote>

<h1>Contents</h1>
<div id="header">
<h1 class="title">Barcode Writer in Pure PostScript</h1>
</div>
<div id="TOC">
<ul>
<li><a href="#barcode-writer-in-pure-postscript">Barcode Writer in Pure PostScript</a><ul>
<li><a href="#flavours-of-named-resources">&quot;Flavours&quot; of Named Resources</a></li>
<li><a href="#downloading">Downloading</a></li>
</ul></li>
<li><a href="#quick-guide">Quick Guide</a></li>
<li><a href="#monolithic-flavours">Monolithic Flavours</a><ul>
<li><a href="#inclusion-within-the-prolog-section-of-a-document">Inclusion Within the Prolog Section of a Document</a></li>
<li><a href="#installing-to-a-printer-initial-job-vm">Installing to a Printer Initial Job VM</a></li>
</ul></li>
<li><a href="#named-resource-flavours">Named Resource Flavours</a><ul>
<li><a href="#deploying-the-named-resource">Deploying the Named Resource</a><ul>
<li><a href="#ghostscript">GhostScript</a></li>
<li><a href="#adobe-distiller">Adobe Distiller</a></li>
<li><a href="#printer-hard-disk">Printer Hard Disk</a></li>
<li><a href="#postscript-document-manager">PostScript Document Manager</a></li>
</ul></li>
</ul></li>
<li><a href="#symbology-reference">Symbology Reference</a><ul>
<li><a href="#point-of-sale">Point of Sale</a><ul>
<li><a href="#ean-13">EAN-13</a></li>
<li><a href="#ean-8">EAN-8</a></li>
<li><a href="#upc-a">UPC-A</a></li>
<li><a href="#upc-e">UPC-E</a></li>
<li><a href="#isbn">ISBN</a></li>
<li><a href="#ismn">ISMN</a></li>
<li><a href="#issn">ISSN</a></li>
</ul></li>
<li><a href="#two-dimensional">Two-Dimensional</a><ul>
<li><a href="#aztec-code">Aztec Code</a></li>
<li><a href="#aztec-runes">Aztec Runes</a></li>
<li><a href="#data-matrix">Data Matrix</a></li>
<li><a href="#data-matrix-rectangular">Data Matrix Rectangular</a></li>
<li><a href="#data-matrix-rectangular-extension">Data Matrix Rectangular Extension</a></li>
<li><a href="#han-xin-code">Han Xin Code</a></li>
<li><a href="#micropdf417">MicroPDF417</a></li>
<li><a href="#pdf417">PDF417</a></li>
<li><a href="#compact-pdf417">Compact PDF417</a></li>
<li><a href="#qr-code">QR Code</a></li>
<li><a href="#micro-qr-code">Micro QR Code</a></li>
</ul></li>
<li><a href="#one-dimensional">One-Dimensional</a><ul>
<li><a href="#code-128">Code 128</a></li>
<li><a href="#code-39">Code 39</a></li>
<li><a href="#code-39-extended">Code 39 Extended</a></li>
<li><a href="#code-93">Code 93</a></li>
<li><a href="#code-93-extended">Code 93 Extended</a></li>
<li><a href="#interleaved-2-of-5">Interleaved 2 of 5</a></li>
</ul></li>
<li><a href="#supply-chain">Supply Chain</a><ul>
<li><a href="#gs1-datamatrix">GS1 DataMatrix</a></li>
<li><a href="#gs1-qr-code">GS1 QR Code</a></li>
<li><a href="#gs1-128">GS1-128</a></li>
<li><a href="#ean-14">EAN-14</a></li>
<li><a href="#itf-14">ITF-14</a></li>
<li><a href="#sscc-18">SSCC-18</a></li>
</ul></li>
<li><a href="#gs1-databar-family">GS1 DataBar Family</a><ul>
<li><a href="#gs1-databar-omnidirectional">GS1 DataBar Omnidirectional</a></li>
<li><a href="#gs1-databar-stacked-omnidirectional">GS1 DataBar Stacked Omnidirectional</a></li>
<li><a href="#gs1-databar-expanded">GS1 DataBar Expanded</a></li>
<li><a href="#gs1-databar-expanded-stacked">GS1 DataBar Expanded Stacked</a></li>
<li><a href="#gs1-databar-truncated">GS1 DataBar Truncated</a></li>
<li><a href="#gs1-databar-stacked">GS1 DataBar Stacked</a></li>
<li><a href="#gs1-databar-limited">GS1 DataBar Limited</a></li>
<li><a href="#gs1-north-american-coupon-code">GS1 North American Coupon Code</a></li>
</ul></li>
<li><a href="#postal-symbols">Postal Symbols</a><ul>
<li><a href="#australia-post-4-state-customer-code">Australia Post 4 State Customer Code</a></li>
<li><a href="#deutsche-post-identcode">Deutsche Post Identcode</a></li>
<li><a href="#deutsche-post-leitcode">Deutsche Post Leitcode</a></li>
<li><a href="#japan-post-4-state-barcode">Japan Post 4 State Barcode</a></li>
<li><a href="#maxicode">MaxiCode</a></li>
<li><a href="#royal-mail-4-state-customer-code">Royal Mail 4 State Customer Code</a></li>
<li><a href="#royal-mail-mailmark">Royal Mail Mailmark</a></li>
<li><a href="#royal-tnt-post-4-state-barcode">Royal TNT Post 4 state barcode</a></li>
<li><a href="#usps-intelligent-mail">USPS Intelligent Mail</a></li>
<li><a href="#usps-postnet">USPS POSTNET</a></li>
<li><a href="#usps-planet">USPS PLANET</a></li>
<li><a href="#usps-fim-symbols">USPS FIM Symbols</a></li>
</ul></li>
<li><a href="#pharmaceutical-symbols">Pharmaceutical Symbols</a><ul>
<li><a href="#italian-pharmacode">Italian Pharmacode</a></li>
<li><a href="#pharmacode">Pharmacode</a></li>
<li><a href="#two-track-pharmacode">Two-Track Pharmacode</a></li>
<li><a href="#pzn">PZN</a></li>
</ul></li>
<li><a href="#hibc-symbols">HIBC Symbols</a><ul>
<li><a href="#hibc-code-39">HIBC Code 39</a></li>
<li><a href="#hibc-code-128">HIBC Code 128</a></li>
<li><a href="#hibc-pdf417">HIBC PDF417</a></li>
<li><a href="#hibc-micropdf417">HIBC MicroPDF417</a></li>
<li><a href="#hibc-qr-code">HIBC QR Code</a></li>
<li><a href="#hibc-data-matrix">HIBC Data Matrix</a></li>
<li><a href="#hibc-codablock-f">HIBC Codablock F</a></li>
</ul></li>
<li><a href="#less-used-symbols">Less-used Symbols</a><ul>
<li><a href="#bc412">BC412</a></li>
<li><a href="#channel-code">Channel Code</a></li>
<li><a href="#codabar">Codabar</a></li>
<li><a href="#codablock-f">Codablock F</a></li>
<li><a href="#code-11">Code 11</a></li>
<li><a href="#code-16k">Code 16K</a></li>
<li><a href="#code-25">Code 25</a></li>
<li><a href="#dotcode">DotCode</a></li>
<li><a href="#ultracode">Ultracode</a></li>
<li><a href="#iata-2-of-5">IATA 2 of 5</a></li>
<li><a href="#matrix-2-of-5">Matrix 2 of 5</a></li>
<li><a href="#datalogic-2-of-5">Datalogic 2 of 5</a></li>
<li><a href="#coop-2-of-5">COOP 2 of 5</a></li>
<li><a href="#code-49">Code 49</a></li>
<li><a href="#code-one">Code One</a></li>
<li><a href="#msi-plessey">MSI Plessey</a></li>
<li><a href="#plessey">Plessey</a></li>
<li><a href="#posicode">PosiCode</a></li>
<li><a href="#telepen">Telepen</a></li>
<li><a href="#telepen-numeric">Telepen Numeric</a></li>
</ul></li>
<li><a href="#gs1-composite-symbols">GS1 Composite Symbols</a><ul>
<li><a href="#ean-13-composite">EAN-13 Composite</a></li>
<li><a href="#ean-8-composite">EAN-8 Composite</a></li>
<li><a href="#upc-a-composite">UPC-A Composite</a></li>
<li><a href="#upc-e-composite">UPC-E Composite</a></li>
<li><a href="#gs1-databar-omnidirectional-composite">GS1 DataBar Omnidirectional Composite</a></li>
<li><a href="#gs1-databar-stacked-omnidirectional-composite">GS1 DataBar Stacked Omnidirectional Composite</a></li>
<li><a href="#gs1-databar-expanded-composite">GS1 DataBar Expanded Composite</a></li>
<li><a href="#gs1-databar-expanded-stacked-composite">GS1 DataBar Expanded Stacked Composite</a></li>
<li><a href="#gs1-databar-truncated-composite">GS1 DataBar Truncated Composite</a></li>
<li><a href="#gs1-databar-stacked-composite">GS1 DataBar Stacked Composite</a></li>
<li><a href="#gs1-databar-limited-composite">GS1 DataBar Limited Composite</a></li>
<li><a href="#gs1-128-composite">GS1-128 Composite</a></li>
<li><a href="#cc-a">CC-A</a></li>
<li><a href="#cc-b">CC-B</a></li>
<li><a href="#cc-c">CC-C</a></li>
</ul></li>
<li><a href="#raw-symbols">Raw Symbols</a><ul>
<li><a href="#daft">DAFT</a></li>
<li><a href="#flattermarken">Flattermarken</a></li>
<li><a href="#raw">Raw</a></li>
</ul></li>
<li><a href="#partial-symbols">Partial Symbols</a><ul>
<li><a href="#ean-2">EAN-2</a></li>
<li><a href="#ean-5">EAN-5</a></li>
</ul></li>
<li><a href="#gs1-application-identifier-standard-format">GS1 Application Identifier Standard Format</a></li>
</ul></li>
<li><a href="#options-reference">Options Reference</a><ul>
<li><a href="#check-digits">Check Digits</a><ul>
<li><a href="#includecheck">includecheck</a></li>
<li><a href="#includecheckintext">includecheckintext</a></li>
</ul></li>
<li><a href="#input-processing">Input Processing</a><ul>
<li><a href="#parse">parse</a></li>
<li><a href="#parsefnc">parsefnc</a></li>
</ul></li>
<li><a href="#symbol-dimensions">Symbol Dimensions</a><ul>
<li><a href="#height">height</a></li>
<li><a href="#width">width</a></li>
</ul></li>
<li><a href="#bar-properties">Bar Properties</a><ul>
<li><a href="#inkspread">inkspread</a></li>
<li><a href="#inkspreadh">inkspreadh</a></li>
<li><a href="#inkspreadv">inkspreadv</a></li>
<li><a href="#dotty">dotty</a></li>
</ul></li>
<li><a href="#text-properties">Text Properties</a><ul>
<li><a href="#includetext">includetext</a></li>
<li><a href="#textfont">textfont</a></li>
<li><a href="#textsize">textsize</a></li>
<li><a href="#textgaps">textgaps</a></li>
<li><a href="#alttext">alttext</a></li>
</ul></li>
<li><a href="#text-positioning">Text Positioning</a><ul>
<li><a href="#textxalign">textxalign</a></li>
<li><a href="#textyalign">textyalign</a></li>
<li><a href="#textxoffset">textxoffset</a></li>
<li><a href="#textyoffset">textyoffset</a></li>
</ul></li>
<li><a href="#border-properties">Border Properties</a><ul>
<li><a href="#showborder">showborder</a></li>
<li><a href="#borderwidth">borderwidth</a></li>
<li><a href="#borderleft">borderleft</a></li>
<li><a href="#borderright">borderright</a></li>
<li><a href="#bordertop">bordertop</a></li>
<li><a href="#borderbottom">borderbottom</a></li>
</ul></li>
<li><a href="#symbol-colors">Symbol Colors</a><ul>
<li><a href="#barcolor">barcolor</a></li>
<li><a href="#backgroundcolor">backgroundcolor</a></li>
<li><a href="#bordercolor">bordercolor</a></li>
<li><a href="#textcolor">textcolor</a></li>
</ul></li>
<li><a href="#ean-upc-add-ons">EAN-UPC Add Ons</a><ul>
<li><a href="#addontextfont">addontextfont</a></li>
<li><a href="#addontextsize">addontextsize</a></li>
<li><a href="#addontextxoffset">addontextxoffset</a></li>
<li><a href="#addontextyoffset">addontextyoffset</a></li>
</ul></li>
<li><a href="#ean-upc-guards">EAN-UPC Guards</a><ul>
<li><a href="#guardwhitespace">guardwhitespace</a></li>
<li><a href="#guardwidth">guardwidth</a></li>
<li><a href="#guardheight">guardheight</a></li>
<li><a href="#guardleftpos">guardleftpos</a></li>
<li><a href="#guardrightpos">guardrightpos</a></li>
<li><a href="#guardleftypos">guardleftypos</a></li>
<li><a href="#guardrightypos">guardrightypos</a></li>
</ul></li>
</ul></li>
<li><a href="#knowledge-base">Knowledge Base</a><ul>
<li><a href="#faqs">FAQs</a></li>
<li><a href="#resizing-symbols">Resizing Symbols</a></li>
<li><a href="#developing-a-frontend-to-bwipp">Developing a Frontend to BWIPP</a></li>
</ul></li>
<li><a href="#acknowledgements">Acknowledgements</a></li>
<li><a href="#cited-by">Cited-By</a></li>
</ul>
</div>
<h1 id="barcode-writer-in-pure-postscript">Barcode Writer in Pure PostScript</h1>
<p>    </p>
<p>Useful links:</p>
<ul>
<li>Homepage: <a href="https://bwipp.terryburton.co.uk" class="uri">https://bwipp.terryburton.co.uk</a></li>
<li>Documentation: <a href="https://github.com/bwipp/postscriptbarcode/wiki" class="uri">https://github.com/bwipp/postscriptbarcode/wiki</a></li>
<li>Documentation in PDF format for print: <a href="https://goo.gl/PBFNbv" class="uri">https://goo.gl/PBFNbv</a></li>
<li>Download: <a href="https://github.com/bwipp/postscriptbarcode/releases/latest" class="uri">https://github.com/bwipp/postscriptbarcode/releases/latest</a></li>
<li>Source: <a href="https://github.com/bwipp/postscriptbarcode.git" class="uri">https://github.com/bwipp/postscriptbarcode.git</a></li>
<li>Issue tracker: <a href="https://github.com/bwipp/postscriptbarcode/issues" class="uri">https://github.com/bwipp/postscriptbarcode/issues</a></li>
<li>Mailing list: <a href="https://groups.google.co.uk/group/postscriptbarcode" class="uri">https://groups.google.co.uk/group/postscriptbarcode</a></li>
<li>Presentation: Slides: <a href="https://goo.gl/WqYB6A" class="uri">https://goo.gl/WqYB6A</a> Materials: <a href="https://goo.gl/dth54z" class="uri">https://goo.gl/dth54z</a></li>
</ul>
<p>Barcode Writer in Pure Postscript (BWIPP) generates all barcode formats entirely within PostScript so that the process of converting the input data into the printed output can be performed by the printer or RIP itself. This is ideal for variable data printing (VDP) and avoids the need to re-implement the barcode generation process whenever your language needs change.</p>
<p>Since this resource is written in PostScript and interpreted within the virtual machine of a printer it is compatible with any operating system and hardware platform.</p>
<p>It makes including any barcode within a PostScript document as simple as inserting the following directive:</p>
<pre><code>0 0 moveto (978-1-56581-231-4) (includetext)
/isbn /uk.co.terryburton.bwipp findresource exec
</code></pre>
<p>There is a web-based demonstration of the project here:</p>
<p><a href="https://the-burtons.xyz/barcode-generator/" class="uri">https://the-burtons.xyz/barcode-generator/</a></p>
<p>This project is dedicated to the memory of Craig K. Harmon.</p>
<h2 id="flavours-of-named-resources">&quot;Flavours&quot; of Named Resources</h2>
<p>BWIPP is essentially a set of generic PostScript Level 2 named resources that are provided in four flavours for ease of use. The one to use depends on how you intend to deploy the library.</p>
<ul>
<li><p>&quot;Packaged&quot; or &quot;unpackaged&quot;: The named resources have been packaged for DSC conformance, portability and ease of distribution. You will most likely want to use a packaged flavour in production, however the unpackaged versions of the resources are useful for understanding the code, developing the library and debugging.</p></li>
<li><p>&quot;Separate files&quot; or &quot;monolithic&quot;: The resource is provided as separate files that are formatted for direct use by Adobe Distiller, GhostScript, a printer hard disk or a document manager. The monolithic flavours contain all of the resources in a single file that is suitable for inclusion in the Prolog section of a each PostScript document or installing to a printer's initial job VM to provide persistence between jobs until the device is reset.</p></li>
</ul>
<p>This leads to the following set of four files.</p>
<p>For production use:</p>
<ul>
<li><code>postscriptbarcode-packaged-resource</code> – Packaged; Separate files.</li>
<li><code>postscriptbarcode-monolithic-package</code> – Packaged; Monolithic file.</li>
</ul>
<p>For BWIPP development:</p>
<ul>
<li><code>postscriptbarcode-resource</code> – Unpackaged; Seperate files.</li>
<li><code>postscriptbarcode-monolithic</code> – Unpackaged; Monolithic file.</li>
</ul>
<h2 id="downloading">Downloading</h2>
<p>You can download prepared packages and the sources from here:</p>
<p><a href="https://github.com/bwipp/postscriptbarcode/releases/latest" class="uri">https://github.com/bwipp/postscriptbarcode/releases/latest</a></p>
<p>Alternatively you can get and build the latest from version control:</p>
<pre><code>git clone https://github.com/bwipp/postscriptbarcode.git
cd postscriptbarcode
make
</code></pre>
<p>The flavours are built into subdirectories of the <code>build/</code> directory.</p>
<p>The build requirements are Perl, GNU Make and GhostScript.</p>
<h1 id="quick-guide">Quick Guide</h1>
<p>Using Barcode Writer in Pure PostScript requires only some basic PostScript knowledge that is easily learned by experimentation. If you do not want to get your hands messy playing with PostScript then you can use one of the project's frontends which hide many of the details.</p>
<p>The best way to get familiar with using the code is to download the <em>monolithic</em> flavour of the <a href="https://github.com/bwipp/postscriptbarcode/releases/latest">latest release</a> and open the <code>barcode_with_sample.ps</code> file with a text editor.</p>
<p>This file consists of the following sections:</p>
<ul>
<li>A PostScript language indicator beginning <code>%!PS</code>.</li>
<li>Comments as lines beginning <code>%</code>.</li>
<li>A definition for the <code>uk.co.terryburton.bwipp</code> category of named resources.</li>
<li>A small set of named resource definitions for the renderers which generate the graphical output for the symbols, delimited by <code>% --BEGIN RENDERER ...--</code> and <code>% --END RENDERER ...--</code>.</li>
<li>A large set of named resource definitions for the encoders which convert the input into a data structure suitable for printing using a PostScript renderer or importing into a frontend application, delimited by <code>% --BEGIN ENCODER ...--</code> and <code>% --END ENCODER ...--</code>.</li>
<li>A set of sample barcode invocations delimited by <code>% --BEGIN SAMPLE--</code> and <code>% --END SAMPLE--</code>.</li>
</ul>
<p>This is one example from the samples:</p>
<pre><code>150 750 moveto (0123456789) (includetext height=0.75)
/interleaved2of5 /uk.co.terryburton.bwipp findresource exec
</code></pre>
<p>The meaning of each component of the invocation is as follows:</p>
<pre><code>150 750 moveto             % The position of the symbol on the canvas
(0123456789)               % The data field: Data content represented by the symbol
(includetext height=0.75)  % The options field: Properties of the symbol
/interleaved2of5           % The type of barcode, often called the &quot;symbology&quot;
/uk.co.terryburton.bwipp findresource exec  % A call to plot the symbol on the canvas
</code></pre>
<p>The acceptable contents of the data field varies between symbologies as defined in the <a href="#symbologies-reference">symbology reference</a>.</p>
<p>The acceptable contents of the options field is for the most part common across all of the symbologies as defined in the <a href="#options-reference">options reference</a>, however encoder-specific options do exist in many cases and the default values of options vary across symbologies.</p>
<p>Using the references mentioned above you should now be able to experiment by carefully amending the sample section of the file and observing the effect on the graphical output.</p>
<p>You will want to view the result of your changes regularly (since bugs may be hard to track down once introduced) either by using a software PostScript interpreter alongside a viewer or by sending the file to a PostScript-enabled printer. Alternatively you can use the <a href="https://the-burtons.xyz/barcode-generator/">web-based generator</a>.</p>
<ul>
<li>GhostScript is an open source PostScript interpreter that is available for both Windows and Linux.</li>
<li>Adobe Distiller is a commercial PostScript interpreter that is available for Windows and MacOS.</li>
<li>gsview is a viewer for PostScript files on Windows which requires that GhostScript be installed.</li>
<li>gv is a viewer for PostScript files on Linux which requires that GhostScript be installed.</li>
<li>The Preview application on Mac OS X is able to view PostScript files.</li>
<li>Most laser printers have native support for PostScript. Look for either Adobe PostScript Level 2 or Adobe PostScript 3 compatibility.</li>
<li>CUPS, the Common Unix Printing System, adds PostScript support for non-PostScript printers by filtering PostScript documents through GhostScript.</li>
</ul>
<p>To directly print a file to an installed, PostScript-enabled printer in Windows by printer name use the following command:</p>
<pre><code>PRINT [/D:device] barcode_with_sample.ps
</code></pre>
<p>Alternatively for a printer attached directly to the first parallel port:</p>
<pre><code>COPY /B barcode_with_sample.ps LPT1:
</code></pre>
<p>To directly print a file to a PostScript-enabled printer in Linux use the following command:</p>
<pre><code>lpr -Pdevice -o raw barcode_with_sample.ps
</code></pre>
<p>To convert a file to PNG format using GhostScript use a variant of the following command:</p>
<pre><code>gs -dBATCH -dSAFER -sDEVICE=png16m -dGraphicsAlphaBits=1 -dTextAlphaBits=4 -sOutputFile=out.png
</code></pre>
<p>Once you are comfortable with amending the <code>barcode_with_sample.ps</code> file you may want to simplify the file by removing definitions for barcode formats that you do not require bearing in mind the following points:</p>
<ul>
<li>You need only include the named resource definitions for the symbologies of the symbols that you are actually intending to create and must include any dependencies as specified in the resource file by the <code>% --REQUIRES ...</code> metadata. Examining the contents of the PS files created by the web-based generator at <a href="https://the-burtons.xyz/barcode-generator/" class="uri">https://the-burtons.xyz/barcode-generator/</a> illustrates this point. If you have downloaded the source distribution of BWIPP you can create a standalone file containing only the resources required for a particular symbology by running something like <code>make build/standalone/code39.ps</code> or <code>make build/standalone_package/code39.ps</code>.</li>
<li>If you intend to create an application whose purpose is to generate documents containing a variety of barcodes it is suggested that you start with the monolithic <code>barcode.ps</code> file and use the <code>% --BEGIN/END ENCODER ...--</code> and <code>% --BEGIN/END RENDERER ...--</code> delimiters to extract the relevant named resource definitions into your documents. This will allow you to simply update your project to the latest version of the BWIPP resource by just replacing your <code>barcode.ps</code> with the latest version.</li>
<li>BWIPP includes a <a href="https://github.com/bwipp/postscriptbarcode/tree/master/libs">C library</a> with bindings for various languages specifically for this purpose.</li>
<li>More information is available in the <a href="#developing-a-frontend-to-bwipp">Developer Notes</a>.</li>
</ul>
<h1 id="monolithic-flavours">Monolithic Flavours</h1>
<p>The monolithic <code>barcode.ps</code> file provides Barcode Writer in Pure PostScript as generic PostScript Level 2 named resources shipped in a single file for ease of inclusion within the Prolog section of a PostScript document template or for installing into a printer's initial job VM.</p>
<p>Prepared tarballs of BWIPP packages into the monolithic flavours are available from <a href="https://github.com/bwipp/postscriptbarcode/releases/latest" class="uri">https://github.com/bwipp/postscriptbarcode/releases/latest</a> with filenames such as <code>postscriptbarcode-monolithic</code> and <code>postscriptbarcode-monolithic-package</code>. Alternatively you can build these flavours from source with <code>make monolithic</code> or <code>make monolithic_package</code>.</p>
<h2 id="inclusion-within-the-prolog-section-of-a-document">Inclusion Within the Prolog Section of a Document</h2>
<p>An application will first include the contents of <code>barcode.ps</code> in the Prolog section of a PostScript file and then generate code like the following.</p>
<p>In the file's <code>Setup</code> or <code>PageSetup</code> section:</p>
<pre><code>/qrcode dup /uk.co.terryburton.bwipp findresource def
</code></pre>
<p>and in the page description where a barcode is needed:</p>
<pre><code>0 0 moveto (BWIPP) (eclevel=M) qrcode
</code></pre>
<p>If the application needs to import the resource under a different name to avoid a conflict, then the setup could be:</p>
<pre><code>/foo /qrcode /uk.co.terryburton.bwipp findresource def
</code></pre>
<p>followed by:</p>
<pre><code>0 0 moveto (BWIPP1) (eclevel=M) foo
0 0 moveto (BWIPP2) (eclevel=M) foo
...
</code></pre>
<p>(The above is analogous to <code>from uk.co.terryburton.bwipp import qrcode as foo</code> in other languages.)</p>
<p>Or, to generate a few barcodes with no setup section or local name at all:</p>
<pre><code>0 0 moveto (BWIPP) (eclevel=M) /qrcode /uk.co.terryburton.bwipp findresource exec
</code></pre>
<p>This technique also reduces the possibility of namespace collision when using the library's procedures with other code.</p>
<h2 id="installing-to-a-printer-initial-job-vm">Installing to a Printer Initial Job VM</h2>
<p>Send barcode.ps to the printer with the line <code>true () startjob</code> added at the top where the parentheses contain the printer's <code>startjob</code> password.</p>
<p>The named resources will remain available between jobs but will not persist accoss power cycles.</p>
<h1 id="named-resource-flavours">Named Resource Flavours</h1>
<p>The contents of the <code>Resource</code> directory provides Barcode Writer in Pure PostScript as generic PostScript Level 2 named resources split into seperate files structured for ease of deployment.</p>
<p>This standard delivery mechanism allows BWIPP resources to be added to a PostScript virtual machine's resource search path, or pre-downloaded to a printer's memory or permanent storage, or supplied by a document manager, all without any change in the code an application generates to use the resources.</p>
<p>Prepared tarballs of BWIPP packaged into the named resource flavours are available from <a href="https://github.com/bwipp/postscriptbarcode/releases/latest" class="uri">https://github.com/bwipp/postscriptbarcode/releases/latest</a> with filenames such as <code>postscriptbarcode-resource</code> and <code>postscriptbarcode-packaged-resource</code>. Alternatively you can build these flavours from source with <code>make resource</code> or <code>make packaged_resource</code>.</p>
<h2 id="deploying-the-named-resource">Deploying the Named Resource</h2>
<p>An application or administrator must first make the BWIPP resources available to the print system as described for a variety of situations below. An application will then generate code like the following.</p>
<p>In the file's <code>Setup</code> or <code>PageSetup</code> section:</p>
<pre><code>/qrcode dup /uk.co.terryburton.bwipp findresource def
</code></pre>
<p>and in the page description where a barcode is needed:</p>
<pre><code>0 0 moveto (BWIPP) (eclevel=M) qrcode
</code></pre>
<p>If the application needs to import the resource under a different name to avoid a conflict, then the setup could be:</p>
<pre><code>/foo /qrcode /uk.co.terryburton.bwipp findresource def
</code></pre>
<p>followed by:</p>
<pre><code>0 0 moveto (BWIPP1) (eclevel=M) foo
0 0 moveto (BWIPP2) (eclevel=M) foo
...
</code></pre>
<p>(The above is analogous to <code>from uk.co.terryburton.bwipp import qrcode as foo</code> in other languages.)</p>
<p>Or, to generate a few barcodes with no setup section or local name at all:</p>
<pre><code>0 0 moveto (BWIPP) (eclevel=M) /qrcode /uk.co.terryburton.bwipp findresource exec
</code></pre>
<p>This technique also reduces the possibility of namespace collision when using the library's procedures with other code.</p>
<p>If the definitions for the routines that generate and render the barcode are not already resident in memory then they will be fetched from a standard resource location in a way that is transparent to the user.</p>
<h3 id="ghostscript">GhostScript</h3>
<p>Unpack the contents of the Resource directory to somewhere accessible to the application.</p>
<p>Specify the location of the Resource files using the <code>-I</code> or <code>-sGenericResourceDir</code> parameters. Where the resource search path defaults to <code>./Resource</code> (or equivalent) you can omit this parameter when running GhostScript from the location of the Resource files.</p>
<p>Example for Windows users:</p>
<pre><code>gswin64c.exe -dSAFER -I%rom%Resource/;C:/bwipp/Resource/ &quot;C:/create-barcode.ps&quot;
</code></pre>
<h3 id="adobe-distiller">Adobe Distiller</h3>
<p>Unpack the contents of the Resource directory to somewhere accessible to the application. Ensure that <code>PSRESOURCEPATH</code> contains the directory containing the <code>.upr</code> file when Distiller is run. The contents should be a list of directories separated by colons, to be searched in order with two consecutive colons to indicate where the default location should fall within the search order.</p>
<h3 id="printer-hard-disk">Printer Hard Disk</h3>
<p>If a printer with a hard disk option is used, the resources can be downloaded once and remain available across power cycles. Resources can be downloaded with a vendor-specific tool, or by sending them to the printer with a snippet of PostScript at the top that queries the printer for the correct file name and creates the file.</p>
<h3 id="postscript-document-manager">PostScript Document Manager</h3>
<p>Unpack the contents of the Resource directory to somewhere accessible to your document manager software then include the <code>%%DocumentNeededResources</code> and <code>%%IncludeResource</code> DSC comments at the appropriate locations within your PostScript output. The document manager software can be configured to transparently insert the requested resources as necessary.</p>
<p>Any specific instuctions for common document manager software are welcome.</p>
<h1 id="symbology-reference">Symbology Reference</h1>
<h2 id="point-of-sale">Point of Sale</h2>
<h3 id="ean-13">EAN-13</h3>
<p><strong>EAN-13</strong> is an extension of the <a href="#upc-a">UPC-A</a> barcode symbology that usually carries a GTIN-13. It was designed by the International Article Numbering Association in 1976 for identification of retail goods at point of sale outside of the US.</p>
<p>Also known as: EAN, UCC-13, European Article Number, International Article Number, JAN, JAN-13, IAN, WPC, SAAN, UCCET, ABAC, BCCI, ICA, MANA, KANC, ANA, ANC.</p>
<p>Variants:</p>
<ul>
<li>EAN-13+2 is an extension of EAN-13 that includes a <a href="#ean-2">two-digit add-on</a>.</li>
<li>EAN-13+5 is an extension of EAN-13 that includes a <a href="#ean-5">five-digit add-on</a>.</li>
<li>EAN-99 is a special form of EAN-13 starting with <code>99</code> that is used as an in-store coupon.</li>
<li><a href="#ean-8">EAN-8</a> is a barcode symbology derived from EAN-13 that is designed for small packaging. It uses a distinct numbering system based on GTIN-8.</li>
<li><a href="#isbn">ISBN</a> is a variant of EAN-13 used to identify books.</li>
<li><a href="#ismn">ISMN</a> is a variant of EAN-13 used to identify printed music.</li>
<li><a href="#issn">ISSN</a> is a variant of EAN-13 used to identify periodicals.</li>
<li><a href="#gs1-composite-symbols">EAN-13 Composite</a> is a variant of EAN-13 that should be used when a CC-A or CC-B GS1 Composite 2D component is required.</li>
</ul>
<p>Standards: ISO/IEC 15420, BS EN 797, GS1 General Specifications.</p>
<h4 id="data-and-options">Data and Options</h4>
<ul>
<li>The data field for a EAN-13 may contain twelve or thirteen digits, optionally followed by a space then two or five digits if an <a href="#ean-2">EAN-2</a> or <a href="#ean-5">EAN-5</a> add-on is required.</li>
<li>If twelve digits of primary data are supplied then the check digit is calculated automatically. Otherwise the provided check digit will be verified.</li>
<li>The <strong>includetext</strong> option should normally be supplied.</li>
<li>The <strong>guardwhitespace</strong> option enables the display of whitespace guard marks.</li>
</ul>
<h4 id="examples">Examples</h4>
<p>Identical symbols, input provided with and without a check digit:</p>
<pre><code>Data:    9771473968012
Options: includetext guardwhitespace
Encoder: ean13
</code></pre>
<pre><code>Data:    977147396801
Options: includetext guardwhitespace
Encoder: ean13
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAABNCAMAAACi7asJAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAA7u7umZmZd3d33d3du7u7qqqqzMzMMzMzVVVVERERIiIiZmZmiIiIREREKPMjrAAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAG8SURBVGje7ZPtbsMgDEUNGBoChPd/2/mLhLXTpP2cZKrKwfj6GDsBuFfgX+A/P8uen4JuNqe47mgVypFFhl278gX4aTnTmc50pjOd6UxnOtOZznSmM53pTGc605nOdKYznelMZzrTmc50pjP/BTMmzDezIK9shpwvPQOEdcaCw7Is7YGFjRyQxhKq9ol+kPXE9vrGDNkMnfaiyADrLNbBAo5eWqzYLwDbjYmNVaolZ8etFbyuSQXVxZT8120wBGGWadHkTCSgP0ebNrcIx4DSaTfhoF06l7ZQ6hzu3EEMUtdi2JhZClhGmLHmcDszXf86Jdq0acYSQdB0wIVouDCThDy9ZZs6Re7Mqd00I8zzZRJ1HrVniTYtzjpb4pv1lqUQuJlSKO7z5Kti67gxi97PjOiuYUmWMw/trWmR0EeD0g7CfzB5nO9MLrw979RIuxHd5M+DH8RZyvMyqJYnbJ0mQyO1hMKcI759kSCTx/H4Wt7N6o9CxEkjE9GjzXTP0mSQBOOxakLWSj0bUYs966xPKVu2D6Y6Y62zv2DXYmdPtLFefWjFrEXp0X5J7U6Bv61S4ps2q+dQk0v8Vf8FmesXx1NJfd4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTE6Mjg6MDgrMDA6MDBUR3uNAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDExOjI4OjA4KzAwOjAwJRrDMQAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<p>A symbol that includes a <a href="#ean-5">five-digit add-on</a>:</p>
<pre><code>Data:    9771473968012 54499
Options: includetext guardwhitespace
Encoder: ean13
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK4AAABNCAMAAAAIAq/wAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAAmZmZd3d37u7u3d3dREREMzMzVVVVERERqqqqu7u7iIiIIiIizMzMZmZmbw03CgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAJ9SURBVGje7ZrLkuMgDEWFxSMYg///bwcJgXE6s+gqxpmF6EohBFd1jJX05gKMYejP0IdiXlNk2mJKcmqcbkLekpNm1vZ6BhaPp3E3RNwkRrgFdkN3D76P6y9c7LstsOGFcZ8D+Kl/GvfKJG9uweEB9jAHQvBFXJs3uVwbnLkFWFvCmjn4cMEP4yaDR+BWfe2y24MtWzjMHHy44KdvtwDwZR6nXNwIAGNuXTyCr+OO9+upoklTQKNEeAu+2wz0NUr5nYQDSuM5B//BV80Hn8tHXHgFH+wt+OoPWVuUZKXQDMTr0iuWv/43fBTXmHGw1zcAvXQ/MSgUV3EVV3EVV3EVV3EVV3EVV3EVV3EVV3EVV3EVV3EVV3EVV3EVV3EVV3EVV3EVV3EVV3EVV3EV95/hDgMybSek4WSqyV3MyQh9jwRFALq2IDsXeaNqpGDTXqdXjMuAPHCNk4lMts1BSTZPSdpwkoBOdy0GzAeArE6PkVRNW5MZ1+FeBuReEo8xoRg+h325JrcqqB86LVoXLZST/ZW7h1JX26trU2Db6zLcy4AsJV0zT8vEuMO+TElXL/148WnRbt4mC0xdN+gZ2nHG3fjIMtzLgCwlfXv9MjHusC+3ZAnZ8WnRog8+bnSfOTp+Bhi4/IwLm+EyILeSqd1q6gb1NLmWe9KdrRlEi5W6REixVPIfuNS6C3FhNiDXL8o2T3BzLXMypY7TtdTN0hp1qu0rBRnXn3Yd6N2ATCO6eeovtPFxsrZndzWL1tXbTZGbtnJSC7eCpOVHWTkuA3IngNllPeG2pA3B5/2mxUwZKy185LM9LGmR38xK3pJ++0KSfdO6liltcmnp+5/HHx4jIRGaJQGPAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDExOjMyOjE3KzAwOjAwuAlE8wAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxMTozMjoxNyswMDowMMlU/E8AAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="ean-8">EAN-8</h3>
<p><strong>EAN-8</strong> is derived from the <a href="#ean-13">EAN-13</a> barcode symbology and is designed for small packaging. It usually carries a GTIN-8.</p>
<p>Also known as: UCC-8, JAN-8.</p>
<p>Variants:</p>
<ul>
<li>EAN-8+2 is an extension of EAN-8 that includes a <a href="#ean-2">two-digit add-on</a>.</li>
<li>EAN-8+5 is an extension of EAN-8 that includes a <a href="#ean-5">five-digit add-on</a>.</li>
<li>EAN-Velocity is a special form of EAN-8 starting with <code>0</code> that is used for in-store coupons.</li>
<li><a href="#ean-13">EAN-13</a> is a longer variant of EAN-8 which has a distinct number system based on GTIN-13.</li>
<li><a href="#gs1-composite-symbols">EAN-8 Composite</a> is a variant of EAN-8 that should be used when a CC-A or CC-B GS1 composite 2D component is required.</li>
</ul>
<p>Standards: ISO/IEC 15420, BS EN 797, GS1 General Specifications.</p>
<h4 id="data-and-options-1">Data and Options</h4>
<ul>
<li>The data field takes either seven or eight digits, optionally followed by a space then two or five digits if an <a href="#ean-2">EAN-2</a> or <a href="#ean-5">EAN-5</a> add-on is required.</li>
<li>If seven digits of primary data are supplied then the check digit is calculated automatically. Otherwise the provided check digit will be verified.</li>
<li>The <strong>includetext</strong> option should normally be supplied.</li>
<li>The <strong>guardwhitespace</strong> option enables the display of white space guard marks.</li>
</ul>
<h4 id="examples-1">Examples</h4>
<p>Identical symbols, input provided with and without a check digit:</p>
<pre><code>Data:    01335583
Options: includetext
Encoder: ean8
</code></pre>
<pre><code>Data:    0133558
Options: includetext
Encoder: ean8
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEMAAABNCAMAAADKHikxAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRFAAAA////qqqqd3d33d3d7u7umZmZzMzMZmZmREREERERu7u7IiIiMzMzVVVViIiIo8yu5AAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEKSURBVFjD7ZBJkoAgDEWJYR70/rftJBDErl73KlTBU74+EpwDBwBO4HjSKm8KWNEHMCesD81hDnOYwxzmMIc5zGEOc5jDHOYwhznM8Y+OCz1vwcUIEdOG5BER4wb8yqcjF6yNtzutYWSsl0LyMn9eGPc3F0eqAeINgM6RIxaZC7t2LR9ap3rPXBwPvfrZHzk89fPcCs5Dj3z+gqcTP7k4EPcdcUeQRvcKzpvDZ6CCyu31zP90gM9FIXUkqXOh1QR45vIndUd3oo7WxLiwx76TdeKby8IdYlYHNcn3tsCD74t3XtCJbz7tT8/SoTjCGKVfCh6h0GM6UeORrwp9C2/VVGY4ILc8H7/Q/AdisxK4N/ZQcQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxOTowOTowMyswMDowMLvtLuUAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTk6MDk6MDMrMDA6MDDKsJZZAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<p>Truncated with white space guards:</p>
<pre><code>Data:    01335583
Options: includetext height=0.5 guardwhitespace
Encoder: ean8
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFcAAAApCAMAAAB3PkXvAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAAqqqqd3d33d3d7u7umZmZzMzMZmZmREREERERu7u7IiIiMzMzVVVViIiI17SJCgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAEgSURBVEjH7ZHZloQgDESDYZFN//9vJwmLwe5+mlfi0RIKr6EAmGXooqeIMTI2MhoC3VoE2j3cL7W5m7u5m7u5m7u5m7u5m/t/7oFWRgeL8ximiO8R0U+BD/8X94yYMi8t9HT1xHQMET82YJd6vX3QcDN3EpIDfwGgMcT1Ue4uc9/z41xoX6s/aaDWGrhpiW1/Ia6lLO5rCPuueO6zi6UuVl8BFd4A4pzmNCDUYoewnw3eFYfQtkpa/CeAJ45vXLBnHCL9BtlPl5wC4OKrYI0+RUqLMh7cnOUvXVQDXXoXb389hNYeJYbn4FJofDZduDh/nnmEulD+Eqxu+S6nJCZcV2ssxxAuF+k1aEle+6/GVdns1Ci3UX4mQ3tdJS8fcf0BC80NP6pDMYMAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTk6MDk6NTkrMDA6MDBXfX/PAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE5OjA5OjU5KzAwOjAwJiDHcwAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="upc-a">UPC-A</h3>
<p>The <strong>UPC-A</strong> barcode symbology is used for identification of retail goods at point of sale inside of the US. It usually carries a GTIN-12.</p>
<p>Also known as: UPC, UCC-12, Universal Product Code.</p>
<p>Variants:</p>
<ul>
<li>UPC-A+2 is an extension of UPC-A that includes a <a href="#ean-2">two-digit add-on</a>.</li>
<li>UPC-A+5 is an extension of UPC-A that includes a <a href="#ean-5">five-digit add-on</a>.</li>
<li><a href="#upc-e">UPC-E</a> is a barcode symbology derived from UPC-A that is designed for small packaging.</li>
<li><a href="#gs1-composite-symbols">UPC-A Composite</a> is a variant of UPC-A that should be used when a CC-A or CC-B <a href="#gs1-composite-symbols">GS1 composite</a> 2D component is required.</li>
<li>A UPC-A symbol can be converted to an <a href="#ean-13">EAN-13</a> symbol by prefixing the GTIN-12 with 0 to make the equivalent GTIN-13.</li>
</ul>
<p>Standards: ISO/IEC 15420, BS EN 797, GS1 General Specifications.</p>
<h4 id="data-and-options-2">Data and Options</h4>
<ul>
<li>The data field for a UPC-A may contain eleven or twelve digits, optionally followed by a space then two or five digits if an <a href="#ean-2">EAN-2</a> or <a href="#ean-5">EAN-5</a> add-on is required.</li>
<li>Alternatively, the data field may contain seven or eight digits of a <a href="#upc-e">UPC-E</a> to produce the equivalent UPC-A symbol.</li>
<li>If eleven digits of primary data are supplied then the check digit is calculated automatically. Otherwise the provided check digit will be verified.</li>
<li>The <strong>includetext</strong> option should normally be supplied.</li>
</ul>
<h4 id="examples-2">Examples</h4>
<p>Identical symbols, input provided with and without a check digit:</p>
<pre><code>Data:    788581014974
Options: includetext
Encoder: upca
</code></pre>
<pre><code>Data:    78858101497
Options: includetext
Encoder: upca
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG0AAABNCAMAAACbihpSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAAmZmZd3d3zMzMqqqq3d3d7u7uu7u7MzMzVVVVERERREREIiIiZmZmiIiIKircWQAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAGCSURBVGje7ZLbkuwgCEVRjFeM//+3R0QT7ZmumvMO6RTNBllRBBAz/Bh+5be7kZVohOaplsRIrjT/BVmzFcFpSlOa0pSmNKUpTWlKU5rSlKY0pSlNaUpTmtKUpjSlKU1pSlOa0pT2nzQAiw4eZxHRviJcfq2/0D8KG/Y3WBYjsvk/0VLGcj2OhDYjCDXO9TdhiUthWNeClA2a+YVmiai4nRZr/1xablauCI2ZNFcC2LyUXkG9svWSKwm8nScZqgAdHnvzvU3Ly4VqeWsz4lOYNG7szVL6rjjA3ioM0aePud1FaBTOk0RTi18uGmwJH/GlcWN4afniwNb+UUOkeNIuJDlLhONsYz/YnpouuLGFGX2ltVsCLJXnBzGtrFT7DELrn3PYbPN2g587AZmiK0shwzZSQ7zt2TTfWPm2uvxxPZu02Vy/Iu3oPQbTJ4n3rhi5TEMs/mzqYkwxjLtzWqBExe6uuhVtvaHV+53kpEFOlIJQP43gd3MxfHWb+R/KKIPv9g/0Zhjm1LtWowAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMDo0Nzo1MiswMDowMACeRzcAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjA6NDc6NTIrMDA6MDBxw/+LAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<p>A symbol that includes a <a href="#ean-5">five-digit add-on</a>:</p>
<pre><code>Data:    788581014974 54499
Options: includetext guardwhitespace
Encoder: upca
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKsAAABNCAMAAADuK2S0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAAmZmZd3d37u7u3d3dREREMzMzVVVVERERqqqqu7u7iIiIIiIizMzMZmZmbw03CgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAJOSURBVGje7ZvRcqUgDIaDQRARfP+3XSFBgmsv2rrHmZ2k7eQnqHyTE8/VXwAKU35M+aNfmeourerSnFfTRt1s20UC3SMugifj06wTIk6sEQZhJ5xH8TKr66zYdklYv2BYpYDL/Z9m7ZXozCA2B7B6KYCOfYvVponbav1sBoHHJFgjxbW1H2aNBjdfx3NZebeJKVnYjBTX1n66rxmgtnHbuWWnAAyJJvcU77KeH6szJaIQJXKAi3hxBsp7E9MVo4pSxl2Kt98t513Kt6yweOftIN77zqJFjpYfJGnqOhuu5K9m54OsRmwY4Pv53n5cE8qqrMqqrMqqrMqqrMqqrMqqrMqqrMqqrMqqrMqqrMqqrMqqrMqqrMqqrMqqrMqqrMqqrMqqrP8LazH9VksapeYA5iKsczt9Zdvvyu7f4rskL3DEEvM9669DsrKflxM7gE+3b4p8+u4wxFYBsgWzF7iymsdZJ+dcyJK1eA5X1xKf01ZYvZTl6hwsTEursC1YeIFxG2fAph8zisg49HU+ILalJXYA86p8AsxasMgJXFnJFty9wLO/zOsefk7Yw9lxBtCkMLfUHMBc7KwFCzor2YK7F9jFkXVF98QU0KHnTMVjJI4Hc2IHMK++ZG224OYFjr7t0tXzAk+wJjuuGaKzwN9dBJpesv1ebMG1uE/jQ5cd0/1/C3wn8nIpbAQh0vFibQNZiTLBZPttFSO8wOHClWP00cIv43hfxyie3zDJlHJbCTLY0t4nmFmbFzjevPRPzMBNq6kDt0nEfNeoHOFfxR+pgyIJTv4p0wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMDo0OTowMCswMDowMMEoaMkAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjA6NDk6MDArMDA6MDCwddB1AAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="upc-e">UPC-E</h3>
<p><strong>UPC-E</strong> is a compacted form of the <a href="#upc-a">UPC-A</a> barcode symbology that usually carries a GTIN-12 with a number system of <em>0</em> or <em>1</em> that has been zero compressed.</p>
<p>Variants:</p>
<ul>
<li>UPC-E0 is a UPC-E with a number system of <em>0</em>.</li>
<li>UPC-E1 is a UPC-E with a number system of <em>1</em>.</li>
<li>UPC-E+2 is an extension of UPC-E that includes a <a href="#ean-2">two-digit add-on</a>.</li>
<li>UPC-E+5 is an extension of UPC-E that includes a <a href="#ean-5">five-digit add-on</a>.</li>
<li><a href="#upc-a">UPC-A</a> is the full size form of UPC-E.</li>
<li><a href="#gs1-composite-symbols">UPC-E Composite</a> is a variant of UPC-E that should be used when a CC-A or CC-B GS1 Composite 2D component is required.</li>
</ul>
<p>Standards: ISO/IEC 15420, BS EN 797, GS1 General Specifications.</p>
<h4 id="data-and-options-3">Data and Options</h4>
<ul>
<li>The data field takes either seven or eight digits, optionally followed by a space then two or five digits if an <a href="#ean-2">EAN-2</a> or <a href="#ean-5">EAN-5</a> add-on is required.</li>
<li>Alternatively, the data field may contain eleven or twelve digits of a <a href="#upc-a">UPC-A</a> to produce the equivalent UPC-E symbol, provided that the input can be zero suppressed.</li>
<li>If seven digits of primary data are supplied then the check digit is calculated automatically. Otherwise the provided check digit will be verified.</li>
<li>The <strong>includetext</strong> option should normally be supplied.</li>
</ul>
<h4 id="examples-3">Examples</h4>
<p>Identical symbols, input provided with and without a check digit:</p>
<pre><code>Data:    01234565
Options: includetext
Encoder: upce
</code></pre>
<pre><code>Data:    0123456
Options: includetext
Encoder: upce
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABNCAMAAADO6/kMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAAqqqq3d3dmZmZd3d3zMzM7u7uu7u7IiIiMzMzVVVVZmZmERERREREiIiIXWKEcQAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAEwSURBVFjD7dIBloQgCABQTFGkwvvfdgCzfc7btxdYmKlGrS/QAMxI9kkwD7+kZCf7OdfSummObWmLEEIIIYQQQgghhBBCCCGEEEIIIYT/Imgc2c4Fq57bvGigzyEWvVYk+ENoXZeBT+wIjS+8DwdsSaaAjH18CchcHwFTUoEYICcoAn4ASfItLPLdoF6vcIsg0GnfZbqgW7UEWQsautJYOc2uWApFGrW3iiyewlBqE2wrttIrd1XOw5Yo4dBJFJa7LIHOCxtYY+RLsDY4dAmMyyto1UvDrlXcSziQBoPldv801AS5mpVPXr3Y63tSm83Z3wKrozlvgt81e0D9eRKG+ChrDvRuOMgEYORjE9B31Q6y9GMJTRvQqxW4Jq1RHcX+I5Th9yBr+xt1jvI2qc9+AIRCDyFkNap9AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIwOjQ5OjU1KzAwOjAw2/BJCgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMDo0OTo1NSswMDowMKqt8bYAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<p>A truncated symbol:</p>
<pre><code>Data:    01234565
Options: includetext height=0.5
Encoder: upce
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAAApCAMAAABdjrRAAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAAqqqq3d3dmZmZd3d3zMzM7u7uu7u7IiIiMzMzVVVVZmZmERERREREiIiIXWKEcQAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAEjSURBVEjH7ZLtkoUgCIbxA0UyvP+7PYDZjmd29v/OSKUp9cD7FsCMYEeAefkUgg12O3NhPTTXltriEA7hEA7hEA7hEP4fQSMmGzMWHeucNND3ELPOBQn+INSmaeALG0Lljnd0gKVkEpCxjS8CMpeHgCEogRggBcgCfgFJ8BIW6a5Q+ku4RRDosnMxnaClaoCkgoZmKitOu8vWQpZK9VWRxFsYitoIVopNeuGmlCtaigIO3URhufMi0NWxghkjXwSzwUFdYHRXUItLw6Yq7kWISIPBert/DDWC9GryydWLfb6ntWnO/hVYOdrzRvCnpgfUnjdhiK+S9kBvwUFGAEaOGwG9qjrI0uIiVDWgFRO4Ns2ohmL/CCX4Pchsf6PMVdo29d0PToIK6ZjGSuIAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMjA6NTA6MzUrMDA6MDAgBLSHAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDIwOjUwOjM1KzAwOjAwUVkMOwAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="isbn">ISBN</h3>
<p>An <strong>ISBN</strong> barcode is a variant of <a href="#ean-13">EAN-13</a> that is used to identify books.</p>
<p>Also known as: ISBN-13, International Standard Book Number, Bookland EAN-13.</p>
<p>Variants:</p>
<ul>
<li>ISBN-10 is a legacy format that was depreciated for public use after 1st January 2007.</li>
</ul>
<p>Standards: ISO 2108, ISO/IEC 15420, BS EN 797, GS1 General Specifications.</p>
<h4 id="data-and-options-4">Data and Options</h4>
<ul>
<li>The data should contain twelve or thirteen digits separated appropriately by dash characters <em>-</em>.</li>
<li>The data can also be provided in legacy ISBN-10 format as nine or ten digits separated appropriately by dash characters <em>-</em>. This will be automatically upgraded to the ISBN-13 format.</li>
<li>If the last digit of the primary data is not given then the ISBN check digit is calculated automatically, otherwise it will be verified.</li>
<li><em>Deprecated.</em> The <strong>legacy</strong> option prevents ISBN-10 input from being upgraded to ISBN-13 and will result in a symbol that is obsolete and should not be used at point of sale.</li>
<li>The primary data can optionally be followed by a space then two or five digits if an <a href="#ean-2">EAN-2</a> or <a href="#ean-5">EAN-5</a> add-on is required.</li>
<li>The <strong>includetext</strong> option should normally be supplied.</li>
<li>The <strong>guardwhitespace</strong> option enables the display of white space guard marks.</li>
<li>The following options are also relevant to this barcode symbology:
<ul>
<li><strong>isbntextfont</strong>: PostScript font name for text above symbol</li>
<li><strong>isbntextsize</strong>: Font size for the text above symbol, in points</li>
<li><strong>isbntextxoffset</strong>: Horizontal position of ISBN text, in points</li>
<li><strong>isbntextyoffset</strong>: Vertical position of ISBN text, in points</li>
</ul></li>
</ul>
<h4 id="example-isbn">Example ISBN</h4>
<p>Identical symbols, input provided with and without an ISBN check digit:</p>
<pre><code>Data:    978-1-873671-00-9
Options: includetext
Encoder: isbn
</code></pre>
<pre><code>Data:    978-1-873671-00
Options: includetext
Encoder: isbn
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHUAAABWCAMAAADG4ikWAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////zMzM7u7umZmZu7u7d3d33d3dqqqqZmZmiIiIREREAAAAMzMzVVVVERERIiIis0JylgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAKWSURBVGje7ZrJoqQgDEUDJChq6f//bWcCtMpe9bJDPYUM3BOQtwNAW8rw23JBACKqAHXB6e0jc2pCWhbzJLNnEmQN2Xuo4ooVCAtBXbFgWiE1jxdICKyYAJq+tSF1PXNqQtJhEmW1ZxJnLbW/hypInCSZ31xiWaAva4HcNI2fjLXLDMHulIRURLqmbk8qqcPeU5V0Zxpv8YqEgC13alpkM1yUcuW9c0EbivNBJUS8US2LoP/5LFUVkSolWD0IZXxCqCxQEe6l3pbhzoq+k2LhnDB2WJZh76HaNkq8RkbhRtRwzVjmWr1yroT6DssE32FzFj0hrcqCpeLySOJP1sZ7qhr+5QhDvh3s/JrwM8x/zcpvqv9b2+W3y6MG2Mgcuw4tSXPGD7p/Zvvc0dkgqEENalCDGtSgBjWoQQ1qUIMa1KAGNahBDWpQgxrUoAY1qEENalCDGtR/o+bitxIkgkR286X41QO7SKJWj2W1TCcRzkDPXujWmfw3NR8fOpcHda/QnfmSyxVmeSwfq1iqQwddbUzy7HWjE3vn8t/UtnFVR6dKI9a52MkB2ndZi1sWKzziR7LrmSGtPeDZiZ3l0zuX/6YScY37jVq5BJFrH3Xi3dKY3LP5aHbZMtqli3pAzxZO3Xvn8t/UcrHknbrpPZb9OmvXmZbGIB1X1Wzaju0sM6DZwoG9dy7/c5rovOhGRakaz8SSXWdYaCuCutoOE0um8xb4pbr823+OzvS2Fhgznzoe09tEpiGfeAY8W04AC3r3Le9Njgqt09atbGNK/1JqWexjk2TNvFYcgdspYEHvvuV7+xzbkR9F8PcfH0x0uuWx49guv4VGlw69CD8F7VqlCu+e8rf9xVdn/quF06r4ouhO717k/wCJMaE4RrMOAwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMDo1Mjo0OCswMDowME/jDGMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjA6NTI6NDgrMDA6MDA+vrTfAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<p>An ISBN with a <a href="#ean-5">five-digit add-on</a>:</p>
<pre><code>Data:    978-1-873671-00-9 54499
Options: includetext guardwhitespace
Encoder: isbn
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK8AAABWCAMAAACO0TaWAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////zMzM7u7umZmZu7u7d3d33d3dqqqqZmZmiIiIREREAAAAMzMzVVVVERERIiIis0JylgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAN1SURBVGje7ZvZcusgDEAFSNjYTvz/f3vRwpLUfWkyae+MSG20IZ9g7PRBAEgLEb62mBCAiDJAXnBYm6RGCQjLopag+giCKC4996w/b7hiBsJEkFdMGFYIxVwJAkJlCQBFzjqA2lA1SkAQMTCT6COoRi25nXvWFxrpkflcpyUt0NItEItcoB4R8zxAr2xGDgiJoXJoOs35UztPWV/izUupC2JFQsASG29Y5NYpDsVc77ShqMjGB15CbAMkq0QRtD8btby2IPjymb+2zgHClC7XS2eEeXqmqTNjRrvvrOEYYK0AT4CeR9Yft7JRqPNaIXEjKrhGbOnqTNhs1e9AeRqgkhmTPEMl8yTzd00PQXWBlX4eWV9s+coYp5dGvAz4IsZvo+JVVm9/ue382fkQBVRSwy6iBklM/0Czj2gb2zsV/nveZC9IbvNLB/gBtue7C3+Adxu81LwqxONG92UW4GL8p3mHBbf9QShb/UE4ZgE0/W/yxjPZ9MYj7w8C1VUR91m4muIP8+JO5ZDlelvM24R0Rij7LFxN8afnl/+5Y2tZbeq6AHQ/dSV34fd5+y3eOOOOk8At3OFJ+OX1wM8Sns8oIrCZ1ln4C8/bdmxnuOSF27Ed8UH43feZKgHjSAKjq0JoicP3v4sf5Z0CdbyG7V03i1E4r/M6r/M6r/M6r/M6r/M6r/M6r/M6r/M6r/M6r/M6r/M6r/M6r/M6r/M6r/M6r/M6r/M6r/M675/j7SXM7Eci3TGUbEOCbqMRrfmiaJotEA5Hi15o6jT9E+8LbZQwd949Qy9wPrn8UjXzxWNlTQjooLP0QRa9bnTH1ln69/GOEuaWk4rUWS4bl2dzuWjT1JeqVA+OzvcIYW0Oiw7VmG6ts/Tv4x0lzJYzV3gGKTcx4qyJj3c23SQ6bRG1GjNr0TZHM2HeW2fp38c7Spgt5yb7f/bznhvB0MQH4TizRNN2bPc0HBLNhLC3ztK/j3eUMGtO5JnCe6gwjaBraKXvedX1QBVGyomb4yuvpX8jL8wlzPUxke1gdrEHAvPJnjG9Oi/l4bBoXuk1oXXP6V9ucwkzN7nxpV+srUjR1HfrddG5zi92B4zVXhNa95z+9TZKmBu+1j7rwmSCppnvOLbTdmPSKeIo6+a5L+fK/NY9pn9Hu9xPGTB+q+HQMl6wmNG617ZrPrV/+nXhLo1romcAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMjA6NTM6NDIrMDA6MDAEUTgTAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDIwOjUzOjQyKzAwOjAwdQyArwAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<p>The following ISBN-10 input will be automatically upgraded to a valid ISBN-13 symbol:</p>
<pre><code>Data:    1-86074-271-2
Options: includetext
Encoder: isbn
</code></pre>
<pre><code>Data:    1-86074-271
Options: includetext
Encoder: isbn
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHUAAABWCAMAAADG4ikWAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////zMzM7u7umZmZu7u7d3d33d3dqqqqZmZmiIiIREREMzMzAAAAVVVVERERIiIiUmepYgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAKYSURBVGje7ZpRw6sgCIZRQdNa/f9/ewBRq+3qfLe4teINeBDdnQA6QoTvERMCEFEGyAWXOp5MzCVALAWG73IIov4UccMMhIkgb5gwbBCqvU8QEDKEAFD1VwfSiO9iKPpYpDYV0iwwAQYTV5SKICZJBP9yRanAiCoQq7rxFbk2GytexZp7ktRTQsZJZVi2BCuqi6RNqtziDQkBaxxRoWjZEhQSxcy9SlaiPorIJjKGLG2SaSMMV+3DpJqqophZJtYLxluHIGvtsObyqLqL/EVGaa1ZN8KWZ9lg4i2qr0ijwHNkFDaiilvEtOY6Kk1II5UEWIdVDIljU6lzVmGzrRl24uZ1cUaZ2Cf1YwtDvG3s+NNh3X6+9/Eah3wOudSA/tSFQ0V16ZJ9puP0nOItdgQ61alOdapTnepUpzrVqU51qlOd6lSnOtWpTnWqU53qVKc61alOdapTnfoHakx2KkHeIFE/uJLspEHRd2aFfuigiMPDexzSID18MsRb7Jsa9w+d5UE9MgwxXsIxi3a6KsDW6MSHN786uttFS5yxLL6ptXFR+2ofZ6iAF4tNkh0caVY+I8jpHL6lz92bPRobyFnyEi22i28qcW/ibdEgix9nrh8VcVqpRYy9zJVHvLlfQpNDJXGJPdbENzVdnPJObXrw5bjOPCLNora3M2mZcy9170+xpHmnKVpsF792E50X3ajSEsAzMGTW2y3i+sL5pKp33frOBVnBIU6qir/+OZxrji1Z27vfgdNKTW+y3jNAvdshA6HZuZst3ahDfA7ZKrQtWxtbZ2aJNCvzXPHUVZ4B5zi3wyVqVXdRYqf4Gp+97fFRBK9/X0KLHBZd7eI/UL22kbd7G5V0yjdR+2Tid3/xpxi/rfy4/f/4B9hipzcfuEpqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIwOjU0OjE3KzAwOjAw/FUCqQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMDo1NDoxNyswMDowMI0IuhUAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h4 id="example-isbn-10">Example ISBN-10</h4>
<p>Note that ISBN-10 is legacy format not for use at P.O.S.</p>
<p>The following will generate an obsolete ISBN-10 symbol:</p>
<pre><code>Data:    1-86074-271-8
Options: legacy includetext guardwhitespace
Encoder: isbn
</code></pre>
<pre><code>Data:    1-86074-271
Options: legacy includetext guardwhitespace
Encoder: isbn
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAABWCAMAAADL/FlRAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////zMzM7u7umZmZ3d3dqqqqu7u7d3d3ZmZmiIiIREREMzMzAAAAVVVVERERIiIihV9ZjgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAJ9SURBVGje7Zpds+MgCIbxC9Skyf//tweUqEnb3Zm92znYaRJegQcxvaoAj+E8vA8fxmNM2K6O1ZQAiCiuDk7Err5FvQ/MGIEwEMSMAV0GV64pGl4FnOPE/TFFiGJDGCkDINtNfUZ9GtS/Ua5cY0iA65Tm9FxZia6LoVEg4rIMnu/qM+obM6bCzc1ICFj8yozcL07kAnnuhkCohwRZBk6HBAtzjfrCjFxN0hXg0jFanYIkRCFJUVHolK9lKFLUZ9SHUSo5Xh+DsBIVzB7DMnV1CfntcEHKCanogsBlXYbbiFDVZ9TX8YepPvy8+r/5PqN+7djls8u3GdCfurA3sbl0ST/DcXgOcYm9Ao1pTGMa05jGNKYxjWlMYxrTmMY0pjGNaUxjGtOYxjSmMY1pTGMa05j/KdMH/RtfdCTqB0iC/s2f+qGKbrl2DACSONy89ShCc5viEntn+u1FR7ox9wiX6E+hqEUbnQUgVzrw5s1Te3c7aYojlkVlKrhULmibjeP4AniyWCXVznFqxcODHHzhW3it3uxR2UDOEqeosV28vPsWEXfFL5sFUbw4b3k1EYcVqkffi5xZxJt7JSw5teGn2GNVnL2Vezg54cqs7aTIfh7xilOL6laP0Iocb1D3fiVNGTcaosZ2cdlPWSodJy1MaQbg4Rgxau0WcXXuuDObd8m6U7JzlziYTXww5X085juVgzZcdx2HFWq7yT6PgOZddxkIVQ+65LAwL3H+IvsLQnlqraVl5JU4tSKvE4+2uyPgiDNVq2kVJXaIt0W+trrNUqQE3vW+dRp3WXTWk38y5cxX1u6tTGrLXcTWIxXnIntnPx0Pc+jfrXi7/fP4Ad85p/zatRF3AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIwOjU0OjU0KzAwOjAwSfcWzgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMDo1NDo1NCswMDowMDiqrnIAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="ismn">ISMN</h3>
<p>An <strong>ISMN</strong> barcode is a variant of <a href="#ean-13">EAN-13</a> with a prefix <em>979</em> that is used to identify printed music.</p>
<p>Also known as: International Standard Music Number, ISMN-13.</p>
<p>Variants:</p>
<ul>
<li>ISMN-10 is a legacy format that was depreciated for public use.</li>
</ul>
<p>Standards: ISO 10957, ISO/IEC 15420, BS EN 797, GS1 General Specifications.</p>
<h4 id="data-and-options-5">Data and Options</h4>
<ul>
<li>The data should contain twelve or thirteen digits separated appropriately by dash characters <em>-</em>.</li>
<li>The data can also be provided in legacy ISMN-10 format start <em>M-</em> then eight or nine digits separated appropriately by dash characters <em>-</em>. This will be automatically upgraded to the ISMN-13 format.</li>
<li><em>Deprecated.</em> The <strong>legacy</strong> option prevents ISMN-10 input from being upgraded to ISMN-13 and will result in a symbol that is obsolete and should not be used at point of sale.</li>
<li>If the last digit of the primary data is not given then the ISMN check digit is calculated automatically, otherwise it will be verified.</li>
<li>The primary data can optionally be followed by a space then two or five digits if an <a href="#ean-2">EAN-2</a> or <a href="#ean-5">EAN-5</a> add-on is required.</li>
<li>The <strong>includetext</strong> option should normally be supplied.</li>
<li>The <strong>guardwhitespace</strong> option enables the display of white space guard marks.</li>
<li>The following options are also relevant to this barcode symbology:
<ul>
<li><strong>ismntextfont</strong>: PostScript font name for text above symbol</li>
<li><strong>ismntextsize</strong>: Font size for the text above symbol, in points</li>
<li><strong>ismntextxoffset</strong>: Horizontal position of ISMN text, in points</li>
<li><strong>ismntextyoffset</strong>: Vertical position of ISMN text, in points</li>
</ul></li>
</ul>
<h4 id="example-ismn">Example ISMN</h4>
<p>Identical symbols, input provided with and without an ISMN check digit:</p>
<pre><code>Data:    979-0-2600-0043-8
Options: includetext
Encoder: ismn
</code></pre>
<pre><code>Data:    979-0-2600-0043
Options: includetext
Encoder: ismn
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHUAAABWCAMAAADG4ikWAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADZQTFRF////zMzM7u7umZmZu7u7d3d33d3dqqqqZmZmiIiIv7+/REREr6+vMzMzAAAAVVVVERERIiIiFW3OAwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAKkSURBVGje7ZrNmuQqCIZRwZ9xkkru/2YHVDR2ap6zOMvB6rT4obygyU6A1pyHd/MBAYgoDnOoKQ3LdSsmN8Tleo59WHPbdA6FGSMQBoJQINKvDK4MfwCHEMG5YfZWIEX1o5N4U1yu57gl7FqY7hKLoD0RMHlCCAk0fgJfWvBpQp8btG6U0NGpuFyPccQWzwXN1csqalUXz7DCxWPxSnWppRmGGXmzeygaZiuTkMMS6F93rTHXptTucoF8rzNKNdgehHWEEDl0xGmOHdK0GlSSwiEu12NMlOPQ1jaUSg75XNnNO55/Z49h1TpKHWbfoTSWu4P4RDj3gEOcrm3sspe3segOI0Ut6ssrDN5/M+H1uvsp+h+Tvq769rn8I+2U3ykPqAWt671OafY5Z7+7uWbMP+dCoxrVqEY1qlGNalSjGtWoRjWqUY1qVKMa1ahGNapRjWpUoxrVqEY1qlH/B9WHcZVAPEjUbr6omHoXqN0ncYRT7HHSNi3ppQTqcd1c+5Pqjw9daaOeUcVc6WIQj2656HHQXVRscYZ/73jiKXFzC9Ej/aSWyjke8NgFKiq6y0P4ALI7nhB55LKKMnuYeweAlQOF2h68OVJ9UYmL8I9Dg3hMUeCMk9siPArVowcV5TfMveMq5b9ccymflmr5vKjhZvlJrThFgWsqBFSPegUV5TfMvYNP6mvcccvtnvO+4vttouumBxWPJU5qP1ZOxV3/SS15ZAox8w5fjtP9+uVwrNlyWCIfSPPVLJdX5KR4sYoAau5dPaVhu9b03K6tyXFTXuMrLlEOhbuG49S5VrxUbEo3965vmxymhCl1L0rb56iH35JYYrkzZ0Ete9nieicV+wfQzb3rVH8cMtv3l+HdHP5djPi8GDRGD3FX9tnYRw5fd4v+AHTPxEBo2P2KAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIwOjU2OjQ3KzAwOjAwsEDc8AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMDo1Njo0NyswMDowMMEdZEwAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<p>The following ISMN-10 input will be automatically upgraded to a valid ISMN-13 symbol:</p>
<pre><code>Data:    M-345-24680-5
Options: includetext
Encoder: ismn
</code></pre>
<pre><code>Data:    M-345-24680
Options: includetext
Encoder: ismn
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHUAAABWCAMAAADG4ikWAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADZQTFRF////zMzM7u7umZmZu7u7d3d33d3dqqqqZmZmiIiIv7+/REREr6+vMzMzAAAAVVVVERERIiIiFW3OAwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAK6SURBVGje7Vrdmt0gCEQEjbXJSd7/ZQv4m+3uVS8L+2WDw+CAnNwJYBYQ/jaMBMDMqbsdzbl7oXkYASIzvFAFAVIO8tAry6h0UAKmyBALJP51QCgjDoEgQQjdbVYgp76/hcBqW7VGoNBAKcD4ylpZPP/Lk4AyMkHMMPbPgMW2mW7nx9FWlJ0SqWqOS1faMBBKUn2U9ZbVqGwnUVDEihwGFRyqIVvFsbtJDjsan7trqkWrRD3SgeYOyhGKeIiMe5ZRrc+k3ZA9BGuEkKL2Mt1+wrgIRQd/pO72WmGAkkK9yy9ZpXIgmauEZQLH7wMprl57q91tc8tl/tiK6oUDpasyhn2yzMlAaTNqE/pznFkbFRJ8Y4jfuYDfePDdN9Bh/Dnrf7NL/y59YHjQgc23cOPCi2yIhey9oJ7mqq7qqq7qqq7qqq7qqq7qqq7qqq7qqq7qqq7qqq7qqq7qqq7qqq7qqq7qqq76b6oYOU1VYrabLwPM9pJVaGS90xHttkXb5xWAwHYpooMtd2dvoueH7/xSvdIAj8o3CeXoFNbcuvYR2sMzwCc/xcCVu7M3K1WqOoeq7VAGGG6E+IEoK32AajvdWaPkpWsEkrDDAfRIbh25G3s3vfiD1xZJ5wRVXHbVGyvlo8eiEvhEve5iqrHltkCsSNjEhd1zN/Zu8RHSrlppgnZrScFwPqL8ybqgi8vJq0YeAa5nvfVmzfXcaeS+2Vuz98ObKp0LnKqQjgrlsAUGa6Kxbaw9wFJquIHuIAWM3Bf7bcKddsQFynhsH7INqn5BF/U5mVW9ZDMCNvpZas/d2Zvp8PlY6zstUEckL52pIi1fB9ZXpjM3TtIr3RYXuZG72C/7nPXEVxELLM8hVeB51iePzVHG97SvlK3J2Q4/SsM+3p672F/Ol34GE1lBRPiK/XBbqLN7/L3a7Q8+B9IjO4OPWQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMDo1NzozMCswMDowMJDggFkAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjA6NTc6MzArMDA6MDDhvTjlAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h4 id="example-ismn-10">Example ISMN-10</h4>
<p>Note that ISMN-10 is a legacy format not for use at P.O.S.</p>
<p>The following will generate an obsolete ISMN-10 symbol:</p>
<pre><code>Data:    M-345-24680-5
Options: legacy includetext guardwhitespace
Encoder: ismn
</code></pre>
<pre><code>Data:    M-345-24680
Options: legacy includetext guardwhitespace
Encoder: ismn
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAABWCAMAAADL/FlRAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADZQTFRF////zMzM7u7uqqqqmZmZd3d33d3du7u7ZmZmiIiIv7+/REREr6+vMzMzAAAAVVVVERERIiIiLRMpUwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAKuSURBVGje7ZrdctwgDIXFj5AJtdd+/5eNJATG222mt52KjG04OuITkL0D4K2FCD+2kBK/Y+ZXRnyIXS0pyIt42FV4WJ+NNiqAlBFyhYJfG4RqGTK2WgIEnjPzlHBPk4ECdDUop4qrQipm+Ey0AD8FKEUkyAnIqtHxWFMuUEiZKd8F8+yq1qL0KPVLMTb1Yv2NWVKNjKq8N1TjYMq4IGI2ZtVqIm+mqbo6VZGEHDLvC8+HFo993z8yC5cry5OH+g4qcy65bxziVqxr56n5omZQsiyxQnxkfWi1YSA+TwLk49h+bZGsNh3384yZKuN0iNoV5I6696KGLJVmQsanyZnWj+2HUG/xY/fdEP/K+t+0Q/4OeWD0wISlr+HuhYdZFQ3p95YszZnOdKYznelMZzrTmc50pjOd6UxnOtOZznSmM53pTGc605nOdKYznfnvMmPGMpmE0soUk354FLpZrk1kvebQZ3kEIPTbGib23NU9kfsLz/RgHmWIW8OT2LKZBSWz3bOw7cIZwB2vquKdu7phgGvjivbB1Pw6xHBGyC/IPJIHqB0zUSvkvHKMQGF32IAuzm0jd3HrVz9yySYei172KQqa55QLIfUlWyKAeGW5QaLM3HN7ILdIsaPZbbmLe/zXsPNiy8psNEW99CNi2C/mvpIM6MC6410hjgC2vZ1Z9vk6y8h9usdS8bxwYZLucxcnE8rWoG46iEEX0N16nBZALjScQGdg/Mh9uJftFeds27hzwyIfi85Cmt7kN3PQ3CHZE735YgE98lmo5a7u2Zcjx+3WznKLcjT8kbMUpWfIQdlIKXOqwuukU+MMG7m3e1nka2/7fevF4ibWa+Ma4r63K42pIx/b1X+VqAuc5eMltmjHarm3e11wWC4WwZtYSMshio/YH27mmNviz9HSvgHFL9KfVhvyEAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMDo1ODoyNyswMDowMGjm5cQAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjA6NTg6MjcrMDA6MDAZu114AAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="issn">ISSN</h3>
<p>An <strong>ISSN</strong> barcode is an <a href="#ean-13">EAN-13</a> with prefix <em>977</em> used to identify periodicals.</p>
<p>Also known as: International Standard Serial Number.</p>
<p>Standards: ISO 3297, ISO/IEC 15420, BS EN 797, GS1 General Specifications.</p>
<h4 id="data-and-options-6">Data and Options</h4>
<ul>
<li>The data should contain the seven or eight digits ISSN separated by a dash characters <em>-</em>, followed by a two-digit sequence variant, optionally followed by two or five digits if a <a href="#ean-2">two-digit add-on</a> or <a href="#ean-5">five-digit add-on</a> is required.</li>
<li>If the last digit of the ISSN data is not given then the ISSN check digit is calculated automatically, otherwise it will be verified.</li>
<li>The <strong>includetext</strong> option should normally be supplied.</li>
<li>The <strong>guardwhitespace</strong> option enables the display of white space guard marks.</li>
<li>The following options are also relevant to this barcode symbology:
<ul>
<li><strong>issntextfont</strong>: PostScript font name for text above symbol</li>
<li><strong>issntextsize</strong>: Font size for the text above symbol, in points</li>
<li><strong>issntextxoffset</strong>: Horizontal position of ISSN text, in points</li>
<li><strong>issntextyoffset</strong>: Vertical position of ISSN text, in points</li>
</ul></li>
</ul>
<p>A sequence variant is a two-digit number that usually starts at zero and is incremented whenever the recommended retail price is amended, where applicable.</p>
<h4 id="example">Example</h4>
<p>Identical symbols, input provided with and without an ISSN check digit and having sequence number <em>00</em>:</p>
<pre><code>Data:    0317-8471 00
Options: includetext guardwhitespace
Encoder: issn
</code></pre>
<pre><code>Data:    0317-847 00
Options: includetext guardwhitespace
Encoder: issn
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJMAAABWCAMAAAD8HlQgAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////zMzM7u7uqqqqmZmZd3d33d3du7u7ZmZmiIiIREREAAAAERERVVVVIiIiMzMz8t57JgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAKxSURBVGje7ZrbktsgDIbFSTLg2O//tkUgDskmO802TdoZaScgIwk+A+O9+QEem7GzHWadK2PcgPWlCSGghNDR1Wj1Xma0EUIgH6C2ZgMTJRTBIRgwpmQFBqmuhNj11Edr/HUW2g+l9Q5oRsrrG4+SVR+beVveBInG6OuZ0EUrLUW7MIUvTFjOypfBYMtm/UUmLKs6aamdCFuEhhf7mkhLkS83acM++lKmmIKhcpMIakubpX5C3hUqTxFb1nJ0hZuvu9msbFOLv9ZwaafZ0XwxC2qfscx/mX/st2cZyC3Gjz0lS7wlzprujw569n/B5Pp/gOF8nGlLYacr52vSm5nMbsFfVgdq6ieZYirfmbw6d7bqzUwhCMFw7myVMoFLfJVW5/Nnh+Vqh211Pn/HIR7bjlfOR78F7QHJtkBz7tlbmeohjUDOyqRMyqRMyqRMyqRMyqRMyqRMyqRMyqRMyqRMyqRMyqRMyqRMyqRMyqRMyqRMyvQvM1kfcDBRYEPpuoKrpDRRo0PoKW2WHmAp5k3RUH9x0aN9uG/2vITdXTFllE4UXPbcWoo9CHpKXWXUhjwCXfbV1V+16DkmVkS5szPV+WPvRMHlSwr/Qs6iWS2x+gZHU+UApQw3RV391YqeY2L1kc0LE1bA2omCi/W1sYrLhIljnM2KHA7YU3ReS9FUfz3P5I8y78qU2rrcDbWUOQ9cmFJfJeSDFTkXJ0suRVNp9TwThP0ICxO1bardnBe3NJlqrJ7dbiAkiJtkrUV/xASrSqtcTT87UXBVRfiYfqSM5RN/LDi0Fk31V6bf5ejG97SrtNhEHVU7UXDxleG0Pv3eFZ5xqs7ybdFUfz3PBJcznVPQ3NbuXVNw2fNMhxvTS6yYTWfa/WC6Kprqrx8wgfmmhhVcvBrZR7X2YRHSD7XbvwCEWr/ckKauMwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMDo1OTozMSswMDowMCheu14AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjA6NTk6MzErMDA6MDBZAwPiAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<p>An ISSN with sequence number <em>03</em> and a <a href="#ean-2">two-digit add-on</a> representing issue number <em>17</em>:</p>
<pre><code>Data:    0317-8471 03 17
Options: includetext guardwhitespace
Encoder: issn
</code></pre>
<pre><code>Data:    0317-847 03 17
Options: includetext guardwhitespace
Encoder: issn
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJMAAABWCAMAAAD8HlQgAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////zMzM7u7uqqqqmZmZd3d33d3du7u7ZmZmiIiIREREAAAAIiIiMzMzERERVVVVL2P8/QAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAKoSURBVGje7Zppb8MgDIa5zZGk///fzgZzVEs0RerWTrKrAME2PBxKv7xKXZs2sxxmrMU+KpRxWHjvA7uChafe2nqZQYSgPDivaqmj0oldSdmgtNIaozyB1Ca7qOmg91b/68y3J3DprILpweVrFziqvjZzBlcSAEbv65mCTYZLSGZh8t+YAp6Vw05vcLN+kSngrJZLaCdCllTDS33OAEuSw5sUQ+99KVPKXgPeJFC1hGign5CzSOUghRa1HB1y03XX0fA2Nf9rLSzlNDOKb2aU2Hus0K/QQ+32zh2l+ei1hxT2t8CZ09uFh+zjlX/CZOtdBe+XP4M3M5kNBlMJLf7NTL6U+Wnjv65S3suEvZ0p7AvFhzBlWDrLRzDBrj6OKbqV4jPO7hgfgo+547Cdb9LfMpWnSXvmGfVfMvFgwiRMwiRMwiRMwiRMwiRMwiRMwiRMwiRMwiRMwiRMwiRMwiRMwiRMwiRMwiRMwvQvmIxjjRa5WbM1pFu2+jCkiRpJ2MW+Nkt3kBTzIqlW5WIfzs3sD3/YJ6YSunQrZn8AhsQWUoVd7KuzjFxfpt7rOQlDNn+TKWVc2N6Z6vipV/owyj2UwxB6prALfXUFG+aiQ0Eu6jyJZESh3GTyuOumLEys2aKKeHFA0temRw2B4aPogNOTw+yhXCSR/tXcZXIbjrsysWaLKuKtnXrfwsJEvhrty0Y6oYflKU+Twn737JQ/Nr8wsWarVmN4FWKeTNVXz+7QymeVIkedJtF1ustEKzpmmzVbtaK7gr6qCC+Taci6ePpMHwtynSXleF8FTPfUx/nOmq1a0X1BH12ZpptqTEPWlfJYT7lIcvk2Edpjz/tcCmu2uEpbxHnMvufNDqYp6zJ5z4cbTGdJvu7hbSgN174AFRfAXOWa+0k/2RcKdbdgf5V/1gAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMTowMDoxMyswMDowMK0w8wcAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjE6MDA6MTMrMDA6MDDcbUu7AAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h2 id="two-dimensional">Two-Dimensional</h2>
<h3 id="aztec-code">Aztec Code</h3>
<p><strong>Aztec Code</strong> is a 2D matrix-style barcode symbology. It can encode full 256-character extended-ASCII.</p>
<p>Variants:</p>
<ul>
<li><a href="#aztec-runes">Aztec Runes</a> are a set of small barcode symbols that are used for special applications.</li>
</ul>
<p>Standards: ISO/IEC 24778, ANSI/AIM BC13 - ISS Aztec Code.</p>
<h4 id="data-and-options-7">Data and Options</h4>
<ul>
<li>The data field can contain any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</li>
<li>The <strong>eclevel</strong> option is used to specify the percentage of error correction to be applied when expanding the data, by default <code>23</code>.</li>
<li>The <strong>ecaddchars</strong> option is used to specify how many additional error correction characters to apply the data once expanded by the eclevel percentage, by default <code>3</code>.</li>
<li>The <strong>layers</strong> option is used to specify a particular number of layers in which to encode the data, between <code>1</code> and <code>32</code>. By default the encoder will create a symbol with be minimal number of layers to encode the given data.</li>
<li>The <strong>format</strong> option is used to select between <code>format=full</code> and <code>format=compact</code> symbol types. By default the encoder will choose the most appropriate format to create a symbol of minimal size.</li>
<li><em>Deprecated: Use <a href="#aztec-runes">Aztec Runes</a> instead. The <strong>format</strong> option can also be used to create Aztec Code &quot;runes&quot;, using <code>format=rune</code>. In this case the rune symbol number should be given in the data field.</em></li>
<li>The <strong>readerinit</strong> option denotes that the symbol is used for programming the barcode reader.</li>
<li>The <strong>raw</strong> option denotes that the data field is providing the input as a pre-encoded bitstream suitable for direct low-level encoding.</li>
</ul>
<h4 id="examples-4">Examples</h4>
<pre><code>Data:    This is Aztec Code
Options: 
Encoder: azteccode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAMAAACf4xmcAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACYSURBVDjLnZMLDsAgCEPh/pdenJFvY4okyxx7YihVRFTXs0L+2KuT3RkZYC1l77OBx9Av3zbHavneDIt5cUdVj0C2orFcMYf9pbEoZAxvg8fgWASOnsRcCD8ky/SO1cFZCzRWRYl2mmLIWdnyLIaOyMOaYjF9MRKF1ZpVignWr97FliSWzVmb4rGc7OKEm0Vg9QOZCuzB2AeqbwLFGvIoYwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxMjoyOTo1MiswMDowMOrfLVcAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTI6Mjk6NTIrMDA6MDCbgpXrAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<pre><code>Data:    This is ^065ztec Code
Options: parse eclevel=50 ecaddchars=0
Encoder: azteccode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAMAAACf4xmcAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACYSURBVDjLnZMLDsAgCEPh/pdenJFvY4okyxx7YihVRFTXs0L+2KuT3RkZYC1l77OBx9Av3zbHavneDIt5cUdVj0C2orFcMYf9pbEoZAxvg8fgWASOnsRcCD8ky/SO1cFZCzRWRYl2mmLIWdnyLIaOyMOaYjF9MRKF1ZpVignWr97FliSWzVmb4rGc7OKEm0Vg9QOZCuzB2AeqbwLFGvIoYwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxMjozMToxNCswMDowMN8ciaMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTI6MzE6MTQrMDA6MDCuQTEfAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<pre><code>Data:    ABC123
Options: layers=3 format=full
Encoder: azteccode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADYAAAA2CAMAAAC7m5rvAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAEBSURBVEjHrZULCsQgDET1/pfeXRZ1Pmkh0wZEGn3tNCZxjK/N+Rs/+8/oO55l+znClvMAy8ZePSt7f4gtQQjLBhAKgkOMZSzgBOpINmti6sYZhxxUiHHoMRiaBCY3wPTnyzAPXU8xdMxbs1QOMEzgSlx9LDmmiVrJewvj4qmEHl+x3sRYiheMF7FVQAPTJlOVCpXLeI51R45xJVyLxILOsSrY7uOG+C7mycUH9ASrGqgXjpRRhBVpc9MU9lOMITJvjIITYhwOlcWyIY4hdh1kOiW9qkKMxelmvzItJC3Mg+wzvvoZVjU8bwmYDnJCLYwhvyY0ucpvNbDrK4qTi/AM+wAygQXRn5DxuQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxMjozMjowMiswMDowMJtRBwQAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTI6MzI6MDIrMDA6MDDqDL+4AAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<pre><code>Data:    ABC123
Options: format=compact
Encoder: azteccode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAABxSURBVCjPjZILCgAhCET1/pdeAl0/k41CBL5KZ1LEQtX3E7FzjKdVt7hVsTLp7hPHUz32WEo0zSN2E3KJMInheiRMuhYA7CbgKh4NGFPX7xxwFlOFWWsE51ECJwiev3SDXV9t789Q3CUF5LiPD4zxC39OJwHhcvAvUAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxMjozMjozOSswMDowMBfZVB0AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTI6MzI6MzkrMDA6MDBmhOyhAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<pre><code>Data:    00100111001000000101001101111000010100111100101000000110
Options: raw
Encoder: azteccode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAABzSURBVCjPjZIHDsAgCADt/z/dFhM5kEWC61CWa4k8n/gVpMERuswC/A88VieiDd4wEnhMsbM1QYrvEjMQNXUXUrwnPkXTDttAqOfCGNORqVuKdcvEXEsTbIK4yjTFUUN7zISYmkmsxPyI2s4J1sYl/6TCL+ToAak6QdQSAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDEyOjMzOjE1KzAwOjAwfZ5SKgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxMjozMzoxNSswMDowMAzD6pYAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="aztec-runes">Aztec Runes</h3>
<p><strong>Aztec Runes</strong> are a set of small barcode symbols that are used for special applications.</p>
<p>Variants:</p>
<p><a href="#aztec-code">Aztec Code</a> is a 2D matrix-style barcode symbology that can encode full 256 character extended-ASCII.</p>
<p>Standards: ISO/IEC 24778, ANSI/AIM BC13 - ISS Aztec Code.</p>
<h4 id="data-and-options-8">Data and Options</h4>
<ul>
<li>The data field contains the rune number <code>0</code> to <code>255</code>.</li>
</ul>
<h4 id="examples-5">Examples</h4>
<pre><code>Data:    25
Options: 
Encoder: aztecrune
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAMAAADzapwJAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABHSURBVBjTY2AAA0ZGCAmiIWx8wsQCiDZkQFiYAc1yQsIwA6AYhzCqDgw/4hTGGiI4hNENxCeM4XkcwjgCHacwzHnIhuEQBgC6ZgDNNEZGRwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxMjozNDo1MiswMDowMN6veScAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTI6MzQ6NTIrMDA6MDCv8sGbAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="data-matrix">Data Matrix</h3>
<p>The <strong>Data Matrix</strong> symbology is 2D matrix-style barcode that can encode full 256 character extended-ASCII.</p>
<p>Also known as: Data Matrix ECC 200, DataMatrix.</p>
<p>Variants:</p>
<ul>
<li><a href="#data-matrix-rectangular">Data Matrix Rectangular</a> is a variant of Data Matrix that uses rectangular symbols.</li>
<li><a href="#data-matrix-rectangular-extension">Data Matrix Rectangular Extension</a> is a variant of Data Matrix Rectangular that provides a greater range of symbol dimensions.</li>
<li><a href="#gs1-datamatrix">GS1 DataMatrix</a> is a variant of Data Matrix that should be used when encoding data that is in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a>.</li>
<li><a href="#hibc-symbols">HIBC Data Matrix</a> is a variant of Data Matrix that should be used when encoding HIBC formatted data.</li>
<li><a href="#mailmark">Royal Mail Mailmark</a> is a variant of Data Matrix that is used by the Royal Mail postal service on letters and other small mailpieces.</li>
</ul>
<p>Standards: ISO/IEC 16022, ANSI/AIM BC11 - ISS Data Matrix.</p>
<h4 id="data-and-options-9">Data and Options</h4>
<ul>
<li>The data field can contain any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value. This is useful for specifying unprintable characters.</li>
<li>When the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by <code>^FNC1</code>, <code>^PROG</code>.</li>
<li><em>Deprecated: For internal use.</em> When the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by <code>^MAC5</code>, <code>^MAC6</code>.</li>
<li>Whenever the data field contains suitable input, the encoder will compress ISO/IEC 15434 structured data (internally using the 05 Macro and 06 Macro codewords.)</li>
<li>The <strong>format</strong> option is used to specify the shape of the symbol, either:
<ul>
<li><code>square</code> (default)</li>
<li><code>rectangle</code> - <em>Deprecated: Use <a href="#data-matrix-rectangular-extension">Data Matrix Rectangular Extension</a>.</em></li>
</ul></li>
<li>When the <strong>dotty</strong> option is specified the modules are rendered as dots rather than squares. The dot radius can be adjusted using the <strong>inkspread</strong> option.</li>
<li><em>Deprecated: Use <a href="#data-matrix-rectangular-extension">Data Matrix Rectangular Extension</a>.</em> The <strong>dmre</strong> option enables Data Matrix Rectangular Extension symbols based on the ISO/IEC standard, which increases the number of rectangular symbol sizes available.</li>
<li><em>Deprecated: Use <a href="#data-matrix-rectangular-extension">Data Matrix Rectangular Extension</a> with dimdmre option.</em> The <strong>dindmre</strong> option enables Data Matrix Rectangular Extension symbols based on the AIM + DIN standard, which increases the number of rectangular symbol sizes available.</li>
<li>The <strong>columns</strong> and <strong>rows</strong> options are used to specify the size of the symbol.</li>
<li>The <strong>version</strong> option can also be used to specify the symbol size, as <code>version=RxC</code>. Valid options are:
<ul>
<li>With <code>format=square</code>: <em>10x10</em>, <em>12x12</em>, <em>14x14</em>, <em>16x16</em>, <em>18x18</em>, <em>20x20</em>, <em>22x22</em>, <em>24x24</em>, <em>26x26</em>, <em>32x32</em>, <em>36x36</em>, <em>40x40</em>, <em>44x44</em>, <em>48x48</em>, <em>52x52</em>, <em>64x64</em>, <em>72x72</em>, <em>80x80</em>, <em>88x88</em>, <em>96x96</em>, <em>104x104</em>, <em>120x120</em>, <em>132x132</em>, <em>144x144</em></li>
<li>With <code>format=rectangle</code> (<em>Deprecated: Use <a href="#data-matrix-rectangular">Data Matrix Rectangular</a></em>): <em>8x18</em>, <em>8x32</em>, <em>12x26</em>, <em>12x36</em>, <em>16x36</em>, <em>16x48</em></li>
<li>With <code>format=rectangle</code> and <code>dmre</code> (<em>Deprecated: Use <a href="#data-matrix-rectangular-extension">Data Matrix Rectangular Extension</a></em>): <em>8x18</em>, <em>8x32</em>, <em>8x48</em>, <em>8x64</em>, <em>8x80</em>, <em>8x96</em>, <em>8x120</em>, <em>8x144</em>, <em>12x26</em>, <em>12x36</em>, <em>12x64</em>, <em>12x88</em>, <em>16x36</em>, <em>16x48</em>, <em>16x64</em>, <em>20x36</em>, <em>20x44</em>, <em>20x64</em>, <em>22x48</em>, <em>24x48</em>, <em>24x64</em>, <em>26x40</em>, <em>26x48</em>, <em>26x64</em></li>
<li>With <code>format=rectangle</code> and <code>dindmre</code> (<em>Deprecated: Use <a href="#data-matrix-rectangular-extension">Data Matrix Rectangular Extension</a></em> with dindmre option): <em>8x18</em>, <em>8x32</em>, <em>8x48</em>, <em>8x64</em>, <em>12x26</em>, <em>12x36</em>, <em>12x64</em>, <em>16x36</em>, <em>16x48</em>, <em>16x64</em>, <em>24x32</em>, <em>24x36</em>, <em>24x48</em>, <em>24x64</em>, <em>26x32</em>, <em>26x40</em>, <em>26x48</em>, <em>26x64</em></li>
</ul></li>
<li>If <strong>columns</strong>, <strong>rows</strong> and <strong>version</strong> are unspecified the encoder will default to creating a symbol of the specified <strong>format</strong> that is the minimum size to represent the given data.</li>
<li>The <strong>raw</strong> option denotes that the data field is providing the input as pre-encoded codewords in <code>^NNN</code> format, suitable for direct low-level encoding.</li>
<li><em>Deprecated: For internal use.</em> The <strong>mailmark</strong> option signifies the requirement to use Mailmark-specific encoding.</li>
</ul>
<h4 id="examples-6">Examples</h4>
<p>Identical symbols, automatically sized, the latter showing use of the parse option:</p>
<pre><code>Data:    This is Data Matrix
Options: 
Encoder: datamatrix
</code></pre>
<pre><code>Data:    This is ^068ata Matrix
Options: parse
Encoder: datamatrix
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACRSURBVDjLrZMLCsAgDEPT+1964NyaxqkRJoifvtmSZgAi9tOF2tLW3AHoDwDnUJ7eIIZ0Cyjfy4STYUB3igfisukzAxpDk3o2UBWARZXeGVBejUKUsg0obfHsud1nUAap3O+uTSE2iaYh3IJGh2rxLhShqer9KaQB+SVMSM3GkOi0hBhZGnkDVRHVNj1qQT+NC+i3AjkJijycAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDE0OjIzOjM2KzAwOjAwbzhP1wAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxNDoyMzozNiswMDowMB5l92sAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<p>Identical symbols with a fixed size:</p>
<pre><code>Data:    Fixed size
Options: version=48x48
Encoder: datamatrix
</code></pre>
<pre><code>Data:    Fixed size
Options: rows=48 columns=48
Encoder: datamatrix
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAJvSURBVGje1ZbrrsMwCIO793/pSTvqgu0v6Z8D0irt1iY4GGN2Xdfr1fuaAPh8fK6/m+u6n67fZWPZc3/zXd/bAwDrkW6/f+nmeoR6xBV8RewHqCFqcrSpUpHE+WHhjG0AFNyJq2GSOo2x4k4BUHk0UZepQp7ImwDQNlmU5DelbVdebdwJAC9x0vZU3LomqBkAqCAkTU8535PxaM9GAGoikiMX1dekdPsBvKj5m6wkLSEBBaoRwFPe0bbrUCcrgNoBskBkvtUE2PQqhEu9F8DLpYn6Acj+coXVoBkghaqPqLHSBkkIUeY2gGq6acQ+fFwKTgxYxQCAl4lkqQXW1joZ5gyAJuUFzUKyOaB2xgGorPQHwNefrGUGQMPtJKwyJUlvpnI7gBfRycly74qqkoWZ1gCgYy7D2mnMxHNEhRgGAKjB0x685YDr8qysaQf4/cuL/N+vCYAcF2pfackk6HwPL20CuH94QLcuTJ8HzBVPWgHIYilVJ6jC7s1vAsBvp8FV2nQ9G6UfvRuAC6zp15K7kHWs+ucEACfmzZLADk4jSqbaAEC2DoPlgWhEmUwHAGhkum0831WahKI2AJUgi7USdyotcjIIkDZN1qCi8LaCYTQAwGMzabkk4xpedyjF/QAcgBrH5fl0SR80AmiyVDIai2wdKJF2gLpAQ+5fLkWVsAu2G0BDZhOp+PxubU9qzTkATjONRAHdvr1FC0WNABkwhagizbGvQaENWwE0Yd+qy9P6/A9A0joB4GP6nLI2ko7aFPUEANkxDZBsR1+dUi+t1giQAtTS7QrLxVXDiR5oAXCS0g5o8HNLZtNNAfzw9QZ3YBCB2Y8D8wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxNDoyNDoyNCswMDowMNbRRRkAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTQ6MjQ6MjQrMDA6MDCnjP2lAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<p>A rectangular symbol with a fixed size:</p>
<pre><code>Data:    Rectangular
Options: format=rectangle version=16x48
Encoder: datamatrix
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAgCAMAAADaHo1mAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAADnSURBVEjH1ZVRCsMwDEPd+196jK2L9eTQLwUWGKRL4udKdlpV15X9nQC8R/1mfXz+q7pX79n3aN17yuLUGkcAa3kd6DsYag7Xk2r744BdID9GqRSlwnqaWQDts1KztS4Rs6Xp5wBzuWo4FkWXUQtZsFGAGsTy8idNxcSwDjsB8LZnCC1PX6GMEycHYIEtE7U41XI329MbgCHAZJgL9yyJJoG8gwBecVO78cUJnK4K64MgwBuM1k0gb7DNBR8HeBtpQJeI8/mqAT4I6GK4ZZuv63hF8uPUPAgDVCa+Ng/6ToZE0cQBfz5e8q4FXbrlVuoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTQ6MjQ6NTArMDA6MDAoW2gTAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE0OjI0OjUwKzAwOjAwWQbQrwAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<p>An advanced use containing &quot;hidden data&quot; in the padding codewords as used by some non-standard, &quot;high-security&quot; applications. The technique works by filling the symbol using raw codewords formed from the standard data immediately followed by the non-standard padding data beginning with <code>^129</code>:</p>
<pre><code>Data:    ^066^067^068^142^052^129^161^056^206^101^251^147
Options: version=16x16 raw
Encoder: datamatrix
</code></pre>
<h3 id="data-matrix-rectangular">Data Matrix Rectangular</h3>
<p>The <strong>Data Matrix Rectangular</strong> symbology is a rectangular variant of <a href="#data-matrix">Data Matrix</a>.</p>
<p>Variants:</p>
<ul>
<li><a href="#data-matrix">Data Matrix</a> is the standard square variant of the symbology.</li>
<li><a href="#datamatrix-rectangular-extension">Data Matrix Rectangular Extension</a> is a variant of Data Matrix Rectangular that provides a greater range of symbol dimensions.</li>
</ul>
<p>Standards: ISO/IEC 16022, ANSI/AIM BC11 - ISS Data Matrix.</p>
<h4 id="data-and-options-10">Data and Options</h4>
<ul>
<li>The data field can contain any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value. This is useful for specifying unprintable characters.</li>
<li>When the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by <code>^FNC1</code>, <code>^PROG</code>.</li>
<li><em>Deprecated: For internal use.</em> When the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by <code>^MAC5</code>, <code>^MAC6</code>.</li>
<li>Whenever the data field contains suitable input, the encoder will compress ISO/IEC 15434 structured data (internally using the 05 Macro and 06 Macro codewords.)</li>
<li>When the <strong>dotty</strong> option is specified the modules are rendered as dots rather than squares. The dot radius can be adjusted using the <strong>inkspread</strong> option.</li>
<li><em>Deprecated: Use <a href="#data-matrix-rectangular-extension">Data Matrix Rectangular Extension</a>.</em> The <strong>dmre</strong> option enables Data Matrix Rectangular Extension symbols based on the ISO/IEC standard, which increases the number of rectangular symbol sizes available.</li>
<li><em>Deprecated: Use <a href="#data-matrix-rectangular-extension">Data Matrix Rectangular Extension</a> with the same option.</em> The <strong>dindmre</strong> option enables Data Matrix Rectangular Extension symbols based on the AIM + DIN standard, which increases the number of rectangular symbol sizes available.</li>
<li>The <strong>columns</strong> and <strong>rows</strong> options are used to specify the size of the symbol.</li>
<li>The <strong>version</strong> option can also be used to specify the symbol size, as <code>version=RxC</code>. Valid options are:
<ul>
<li>Default: <em>8x18</em>, <em>8x32</em>, <em>12x26</em>, <em>12x36</em>, <em>16x36</em>, <em>16x48</em></li>
<li>With <code>dmre</code> (<em>Deprecated: Use <a href="#data-matrix-rectangular-extension">Data Matrix Rectangular Extension</a></em>): <em>8x18</em>, <em>8x32</em>, <em>8x48</em>, <em>8x64</em>, <em>8x80</em>, <em>8x96</em>, <em>8x120</em>, <em>8x144</em>, <em>12x26</em>, <em>12x36</em>, <em>12x64</em>, <em>12x88</em>, <em>16x36</em>, <em>16x48</em>, <em>16x64</em>, <em>20x36</em>, <em>20x44</em>, <em>20x64</em>, <em>22x48</em>, <em>24x48</em>, <em>24x64</em>, <em>26x40</em>, <em>26x48</em>, <em>26x64</em></li>
<li>With <code>dindmre</code> (<em>Deprecated: Use <a href="#data-matrix-rectangular-extension">Data Matrix Rectangular Extension</a> with dindmre option</em>): <em>8x18</em>, <em>8x32</em>, <em>8x48</em>, <em>8x64</em>, <em>12x26</em>, <em>12x36</em>, <em>12x64</em>, <em>16x36</em>, <em>16x48</em>, <em>16x64</em>, <em>24x32</em>, <em>24x36</em>, <em>24x48</em>, <em>24x64</em>, <em>26x32</em>, <em>26x40</em>, <em>26x48</em>, <em>26x64</em></li>
</ul></li>
<li>The <strong>raw</strong> option denotes that the data field is providing the input as pre-encoded codewords in <code>^NNN</code> format, suitable for direct low-level encoding.</li>
</ul>
<h4 id="examples-7">Examples</h4>
<p>A rectangular symbol with a fixed size:</p>
<pre><code>Data:    Rectangular
Options: version=16x48
Encoder: datamatrixrectangular
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAgCAMAAADaHo1mAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAADnSURBVEjH1ZVRCsMwDEPd+196jK2L9eTQLwUWGKRL4udKdlpV15X9nQC8R/1mfXz+q7pX79n3aN17yuLUGkcAa3kd6DsYag7Xk2r744BdID9GqRSlwnqaWQDts1KztS4Rs6Xp5wBzuWo4FkWXUQtZsFGAGsTy8idNxcSwDjsB8LZnCC1PX6GMEycHYIEtE7U41XI329MbgCHAZJgL9yyJJoG8gwBecVO78cUJnK4K64MgwBuM1k0gb7DNBR8HeBtpQJeI8/mqAT4I6GK4ZZuv63hF8uPUPAgDVCa+Ng/6ToZE0cQBfz5e8q4FXbrlVuoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTQ6MjQ6NTArMDA6MDAoW2gTAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE0OjI0OjUwKzAwOjAwWQbQrwAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="data-matrix-rectangular-extension">Data Matrix Rectangular Extension</h3>
<p>The <strong>Data Matrix Rectangular Extension</strong> symbology is an enhancement to <a href="#data-matrix-rectangular">Data Matrix Rectangular</a> that provides a greater range of symbol dimensions.</p>
<p>Also known as: DMRE.</p>
<p>Variants:</p>
<ul>
<li><a href="#data-matrix">Data Matrix</a> is the standard square variant of the symbology.</li>
<li><a href="#data-matrix-rectangular">Data Matrix Rectangular</a> is the original rectangular variant of Data Matrix that provides a limited range of symbol dimensions.</li>
</ul>
<p>Standards: ISO/IEC 21471.</p>
<h4 id="data-and-options-11">Data and Options</h4>
<ul>
<li>The data field can contain any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value. This is useful for specifying unprintable characters.</li>
<li>When the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by <code>^FNC1</code>, <code>^PROG</code>.</li>
<li><em>Deprecated: For internal use.</em> When the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by <code>^MAC5</code>, <code>^MAC6</code>.</li>
<li>Whenever the data field contains suitable input, the encoder will compress ISO/IEC 15434 structured data (internally using the 05 Macro and 06 Macro codewords.)</li>
<li>When the <strong>dotty</strong> option is specified the modules are rendered as dots rather than squares. The dot radius can be adjusted using the <strong>inkspread</strong> option.</li>
<li>The <strong>dindmre</strong> option select Data Matrix Rectangular Extension symbols whose dimensions are based on the AIM + DIN standard, rather than the ISO standard.</li>
<li>The <strong>columns</strong> and <strong>rows</strong> options are used to specify the size of the symbol.</li>
<li>The <strong>version</strong> option can also be used to specify the symbol size, as <code>version=RxC</code>. Valid options are:
<ul>
<li>Default: <em>8x18</em>, <em>8x32</em>, <em>8x48</em>, <em>8x64</em>, <em>8x80</em>, <em>8x96</em>, <em>8x120</em>, <em>8x144</em>, <em>12x26</em>, <em>12x36</em>, <em>12x64</em>, <em>12x88</em>, <em>16x36</em>, <em>16x48</em>, <em>16x64</em>, <em>20x36</em>, <em>20x44</em>, <em>20x64</em>, <em>22x48</em>, <em>24x48</em>, <em>24x64</em>, <em>26x40</em>, <em>26x48</em>, <em>26x64</em></li>
<li>With <code>dindmre</code>: <em>8x18</em>, <em>8x32</em>, <em>8x48</em>, <em>8x64</em>, <em>12x26</em>, <em>12x36</em>, <em>12x64</em>, <em>16x36</em>, <em>16x48</em>, <em>16x64</em>, <em>24x32</em>, <em>24x36</em>, <em>24x48</em>, <em>24x64</em>, <em>26x32</em>, <em>26x40</em>, <em>26x48</em>, <em>26x64</em></li>
</ul></li>
<li>The <strong>raw</strong> option denotes that the data field is providing the input as pre-encoded codewords in <code>^NNN</code> format, suitable for direct low-level encoding.</li>
</ul>
<h4 id="examples-8">Examples</h4>
<p>A DMRE symbol with a fixed size:</p>
<pre><code>Data:    1234
Options: version=8x80
Encoder: datamatrixrectangularextension
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAAQCAMAAACm24RqAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QB/wIt3gAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+MKHw8kCOqhsk0AAACrSURBVEjH7ZRLDoAgDETL/S9tiEKZmQILF5ZEEgNCPw+mYGal5P4+B9gC1q62/vvMxaNmawtPt2vzd4+WGGe5fgwghvUe0cYwauFzvsbQvIbb11hnACooCqcBY0/FxY2NW+AiYnlB4vSAnBYTo8ycnmWKix4FnNliBqnBlIDRFeGLgRLrwxNZ8pXBQ9BiUd/JeaUDxCBa5vrgMCQ/HCooe+2kHsvoBMC/vWgX6uoEDbcBDrsAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMTAtMzFUMTU6MzY6MDgrMDA6MDBrtOYYAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTEwLTMxVDE1OjM2OjA4KzAwOjAwGulepAAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE5LTEwLTI5o4jfXAAAADF0RVh0U291cmNlAGh0dHBzOi8vdGhlLWJ1cnRvbnMueHl6L2JhcmNvZGUtZ2VuZXJhdG9yL0v1MBUAAAAASUVORK5CYII=" /></p>
<h3 id="han-xin-code">Han Xin Code</h3>
<p>The <strong>Han Xin Code</strong> symbology is a 2D matrix-style barcode symbology that can encode full 256 character extended-ASCII.</p>
<p>Also known as: Chinese Sensible.</p>
<p>Standards: GB/T 21049-2007.</p>
<h4 id="data-and-options-12">Data and Options</h4>
<ul>
<li>The data field can contain any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</li>
<li>The <strong>eclevel</strong> option is used to specify the error correction level:
<ul>
<li><code>eclevel=L1</code> - Lowest</li>
<li><code>eclevel=L2</code></li>
<li><code>eclevel=L3</code></li>
<li><code>eclevel=L4</code> - Highest</li>
</ul></li>
<li>The <strong>version</strong> option is used to specify the size of the symbol, 1 to 84.</li>
<li>If unspecified the encoder will select the version of the symbol that is the minimum size to represent the given data at the selected error correction level.</li>
</ul>
<h4 id="examples-9">Examples</h4>
<pre><code>Data:    Han Xin Code
Options: version=10 eclevel=L4
Encoder: hanxin
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAABSCAMAAADw8nOpAAAJJGlDQ1BpY2MAAHjalZVnUJNZF8fv8zzphUASQodQQ5EqJYCUEFoo0quoQOidUEVsiLgCK4qINEUQUUDBVSmyVkSxsCgoYkE3yCKgrBtXERWUF/Sd0Xnf2Q/7n7n3/OY/Z+4995wPFwCCOFgSvLQnJqULvJ3smIFBwUzwg8L4aSkcT0838I96Pwyg5XhvBfj3IkREpvGX4sLSyuWnCNIBgLKXWDMrPWWZDy8xPTz+K59dZsFSgUt8Y5mjv/Ho15xvLPqa4+vNXXoVCgAcKfoHDv+B/3vvslQ4gvTYqMhspk9yVHpWmCCSmbbcCR6Xy/QUJEfFJkT+UPC/Sv4HpUdmpy9HbnLKBkFsdEw68/8ONTIwNATfZ/HW62uPIUb//85nWd+95HoA2LMAIHu+e+GVAHTuAED68XdPbamvlHwAOu7wMwSZ3zzU8oYGBEABdCADFIEq0AS6wAiYAUtgCxyAC/AAviAIrAN8EAMSgQBkgVywDRSAIrAH7AdVoBY0gCbQCk6DTnAeXAHXwW1wFwyDJ0AIJsArIALvwTwEQViIDNEgGUgJUod0ICOIDVlDDpAb5A0FQaFQNJQEZUC50HaoCCqFqqA6qAn6BToHXYFuQoPQI2gMmob+hj7BCEyC6bACrAHrw2yYA7vCvvBaOBpOhXPgfHg3XAHXwyfgDvgKfBsehoXwK3gWAQgRYSDKiC7CRriIBxKMRCECZDNSiJQj9Ugr0o30IfcQITKDfERhUDQUE6WLskQ5o/xQfFQqajOqGFWFOo7qQPWi7qHGUCLUFzQZLY/WQVugeehAdDQ6C12ALkc3otvR19DD6An0ewwGw8CwMGYYZ0wQJg6zEVOMOYhpw1zGDGLGMbNYLFYGq4O1wnpgw7Dp2AJsJfYE9hJ2CDuB/YAj4pRwRjhHXDAuCZeHK8c14y7ihnCTuHm8OF4db4H3wEfgN+BL8A34bvwd/AR+niBBYBGsCL6EOMI2QgWhlXCNMEp4SyQSVYjmRC9iLHErsYJ4iniDOEb8SKKStElcUggpg7SbdIx0mfSI9JZMJmuQbcnB5HTybnIT+Sr5GfmDGE1MT4wnFiG2RaxarENsSOw1BU9Rp3Ao6yg5lHLKGcodyow4XlxDnCseJr5ZvFr8nPiI+KwETcJQwkMiUaJYolnipsQUFUvVoDpQI6j51CPUq9RxGkJTpXFpfNp2WgPtGm2CjqGz6Dx6HL2IfpI+QBdJUiWNJf0lsyWrJS9IChkIQ4PBYyQwShinGQ8Yn6QUpDhSkVK7pFqlhqTmpOWkbaUjpQul26SHpT/JMGUcZOJl9sp0yjyVRclqy3rJZskekr0mOyNHl7OU48sVyp2WeywPy2vLe8tvlD8i3y8/q6Co4KSQolCpcFVhRpGhaKsYp1imeFFxWommZK0Uq1SmdEnpJVOSyWEmMCuYvUyRsryys3KGcp3ygPK8CkvFTyVPpU3lqSpBla0apVqm2qMqUlNSc1fLVWtRe6yOV2erx6gfUO9Tn9NgaQRo7NTo1JhiSbN4rBxWC2tUk6xpo5mqWa95XwujxdaK1zqodVcb1jbRjtGu1r6jA+uY6sTqHNQZXIFeYb4iaUX9ihFdki5HN1O3RXdMj6Hnppen16n3Wl9NP1h/r36f/hcDE4MEgwaDJ4ZUQxfDPMNuw7+NtI34RtVG91eSVzqu3LKya+UbYx3jSONDxg9NaCbuJjtNekw+m5qZCkxbTafN1MxCzWrMRth0tie7mH3DHG1uZ77F/Lz5RwtTi3SL0xZ/Wepaxls2W06tYq2KXNWwatxKxSrMqs5KaM20DrU+bC20UbYJs6m3eW6rahth22g7ydHixHFOcF7bGdgJ7Nrt5rgW3E3cy/aIvZN9of2AA9XBz6HK4ZmjimO0Y4ujyMnEaaPTZWe0s6vzXucRngKPz2viiVzMXDa59LqSXH1cq1yfu2m7Cdy63WF3F/d97qOr1Vcnre70AB48j30eTz1Znqmev3phvDy9qr1eeBt653r3+dB81vs0+7z3tfMt8X3ip+mX4dfjT/EP8W/ynwuwDygNEAbqB24KvB0kGxQb1BWMDfYPbgyeXeOwZv+aiRCTkIKQB2tZa7PX3lwnuy5h3YX1lPVh68+EokMDQptDF8I8wurDZsN54TXhIj6Xf4D/KsI2oixiOtIqsjRyMsoqqjRqKtoqel/0dIxNTHnMTCw3tir2TZxzXG3cXLxH/LH4xYSAhLZEXGJo4rkkalJ8Um+yYnJ28mCKTkpBijDVInV/qkjgKmhMg9LWpnWl05c+xf4MzYwdGWOZ1pnVmR+y/LPOZEtkJ2X3b9DesGvDZI5jztGNqI38jT25yrnbcsc2cTbVbYY2h2/u2aK6JX/LxFanrce3EbbFb/stzyCvNO/d9oDt3fkK+Vvzx3c47WgpECsQFIzstNxZ+xPqp9ifBnat3FW560thROGtIoOi8qKFYn7xrZ8Nf674eXF31O6BEtOSQ3swe5L2PNhrs/d4qURpTun4Pvd9HWXMssKyd/vX779Zblxee4BwIOOAsMKtoqtSrXJP5UJVTNVwtV11W418za6auYMRB4cO2R5qrVWoLar9dDj28MM6p7qOeo368iOYI5lHXjT4N/QdZR9tapRtLGr8fCzpmPC49/HeJrOmpmb55pIWuCWjZfpEyIm7J+1PdrXqtta1MdqKToFTGade/hL6y4PTrqd7zrDPtJ5VP1vTTmsv7IA6NnSIOmM6hV1BXYPnXM71dFt2t/+q9+ux88rnqy9IXii5SLiYf3HxUs6l2cspl2euRF8Z71nf8+Rq4NX7vV69A9dcr9247nj9ah+n79INqxvnb1rcPHeLfavztuntjn6T/vbfTH5rHzAd6Lhjdqfrrvnd7sFVgxeHbIau3LO/d/0+7/7t4dXDgw/8HjwcCRkRPox4OPUo4dGbx5mP559sHUWPFj4Vf1r+TP5Z/e9av7cJTYUXxuzH+p/7PH8yzh9/9UfaHwsT+S/IL8onlSabpoymzk87Tt99ueblxKuUV/MzBX9K/FnzWvP12b9s/+oXBYom3gjeLP5d/Fbm7bF3xu96Zj1nn71PfD8/V/hB5sPxj+yPfZ8CPk3OZy1gFyo+a33u/uL6ZXQxcXHxPy6ikLxyKdSVAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGUExURQAAAP///6XZn90AAAABYktHRAH/Ai3eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AQUFQExokOHygAAAYhJREFUWMPVlo0OwyAIhO37v/SSLhscoGjlXEYy2/rzTT0QWwO7btNfUvcp3y3yJv1DK0JeYHqQPKUV36PxLKSecVs0XDgXaReOgoxKP5aJxK0eIRpMBIU8h7RC4eDIhc4jV+U5g7yMreK88ZArAWmPFdksWHgpUldbx7Ftc+JxkE+cJoESkJEAfZl8oIrzDTXdRhKWXY58khjwuNhUfBLZS0sjmZKYLUf+j+J9kXBD4sQXKl6M/BfLNj3v+WlVmbwcKRU1LsVE1qhCELr1LiHe5tLt/SQgZZ6Z69gd6/8NA/lLJVc656EYSNBfNAGJXeR7KyAJyDp5lkWc7mUvIzZRSSDIoHQnCcjKa8H3JKJcYTJRrPvrK4OuW9B5Cdk72rCcO4KT03ITuVPi9/0jIPWBj03o1lYElE7rwkBezqKQG6UuN56AtM4941JxOrGpuhKJUw4mbiSIJsFH4jB0GFuPDq7r2EjdHB1a3tV7YclE+sWtyeM36QQyDrz5gDyD7Adk5urBflQhXwj7DEknt0g9AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTIwVDIyOjAxOjQ5KzAxOjAw8kKu/gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNC0yMFQyMjowMTo0OSswMTowMIMfFkIAAAAtdEVYdGljYzpjb3B5cmlnaHQAQ29weXJpZ2h0IEFydGlmZXggU29mdHdhcmUgMjAxMQi6xbQAAAAxdEVYdGljYzpkZXNjcmlwdGlvbgBBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUTDAGGAAAAMnRFWHRpY2M6bWFudWZhY3R1cmVyAEFydGlmZXggU29mdHdhcmUgc1JHQiBJQ0MgUHJvZmlsZVx+PZ8AAAArdEVYdGljYzptb2RlbABBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUxKIKhAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTYtMDQtMjCeHqn2AAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="micropdf417">MicroPDF417</h3>
<p>The <strong>MicroPDF417</strong> barcode symbology is 2D stacked-linear barcode based on <a href="#pdf417">PDF417</a> that can encode full 256 character extended-ASCII.</p>
<p>Variants:</p>
<ul>
<li><a href="#pdf417">PDF417</a> is a larger variant of the MicroPDF417 barcode.</li>
<li><a href="#hibc-symbols">HIBC MicroPDF417</a> is a variant of MicroPDF417 that should be used when encoding HIBC formatted data.</li>
</ul>
<p>Standards: ISO/IEC 24728, AIM ISS - MicroPDF417.</p>
<h4 id="data-and-options-13">Data and Options</h4>
<ul>
<li>The data field can contain any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</li>
<li>The <strong>columns</strong> and <strong>rows</strong> options are used to specify the size of the symbol. Valid values are:
<ul>
<li><em>1x11</em>, <em>1x14</em>, <em>1x17</em>, <em>1x20</em>, <em>1x24</em>, <em>1x28</em>, <em>2x8</em>, <em>2x11</em>, <em>2x14</em>, <em>2x17</em>, <em>2x20</em>, <em>2x23</em>, <em>2x26</em>, <em>3x6</em>, <em>3x8</em>, <em>3x10</em>, <em>3x12</em>, <em>3x15</em>, <em>3x20</em>, <em>3x26</em>, <em>3x32</em>, <em>3x38</em>, <em>3x44</em>, <em>4x4</em>, <em>4x6</em>, <em>4x8</em>, <em>4x10</em>, <em>4x12</em>, <em>4x15</em>, <em>4x20</em>, <em>4x26</em>, <em>4x32</em>, <em>4x38</em>, <em>4x44</em></li>
</ul></li>
<li>If the <strong>columns</strong> and <strong>rows</strong> are unspecified the encoder will default to creating a symbol that is the minimum size to represent the given data.</li>
<li>The <strong>rowmult</strong> option is used to specify how tall each bar is, with respect to the minimum module width. The default is 3.</li>
<li>The <strong>raw</strong> option denotes that the data field is providing the input as a pre-encoded codewords in <code>^NNN</code> format, suitable for direct low-level encoding.</li>
<li><em>Deprecated: Internal use.</em> The <strong>cca</strong> option identifies this symbol as a <em>CC-A</em> 2D component of a <a href="#gs1-composite-symbols">GS1 Composite</a> symbol.</li>
<li><em>Deprecated: Internal use.</em> The <strong>ccb</strong> option identifies this symbol as a <em>CC-B</em> 2D component of a <a href="#gs1-composite-symbols">GS1 Composite</a> symbol.</li>
<li>Note: Special size rules apply when the <strong>cca</strong> option is given, in which case the <strong>columns</strong> and <strong>rows</strong> options that are used to specify the size of the symbol must be one of:
<ul>
<li><em>2x5</em>, <em>2x6</em>, <em>2x7</em>, <em>2x8</em>, <em>2x9</em>, <em>2x10</em>, <em>2x12</em>, <em>3x4</em>, <em>3x5</em>, <em>3x6</em>, <em>3x7</em>, <em>3x8</em>, <em>4x3</em>, <em>4x4</em>, <em>4x5</em>, <em>4x6</em>, <em>4x7</em></li>
</ul></li>
</ul>
<h4 id="examples-10">Examples</h4>
<pre><code>Data:    MicroPDF417
Options: 
Encoder: micropdf417
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAiCAMAAAAEcluKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACfSURBVDjLnZLbDsAwCELh/396lwrahyWjydZ0clqZCoC837U+C97I80zpP4beS6j4lP5jVNIl8P3mlEKsElQWOqmkBNtVUC620wFmx5RjTinDWN0x54KAIUZhCymSQ4owz5DbZTM4wT7Gsg9lmLtC+d4GNMG6v1WYxniEKVcFMTCmmG7vXrP3B5iHW67nkRSjylu7YYAhpqF05v4FRNgF4n0CVctFqssAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMjE6NDg6MDIrMDA6MDBk48tbAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDIxOjQ4OjAyKzAwOjAwFb5z5wAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<pre><code>Data:    MicroP^068F417
Options: parse rows=15 columns=4
Encoder: micropdf417
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGMAAAAeCAMAAAAPWVC4AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEOSURBVEjHvVXREoMwCAv//9NbbRNS27vxMnZOT0wTDQUABMY/xvE9YZ3GMX7P3YOZl+AjogweC7yC5EWbxsQsUlgcXDAVkgekT9EZ2jSiX4MMUtDHI99B3pyPLgHyNmogP96SeAYWUwWbvK0ayrlSew2I5CfW7GrUuKb4mnPWZSnnjPZoxKqeUs5RxCZvn8ZaV8k5qli4g20atTw6QyHn5O3UKPeSZc2JZZ/RG6uNtGmodxFi1WZVt82mk8PHWey8fRrqeAKSI0xZY8rtDR+38i95GzXy3sf+K437LpWVoRaYBUmNaNdgCtMK276+QVVXaaOWpjs2MFo13t2OlHD3ZEnAuLIReY/FdXf8TeMDtIsFvdQZwSYAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMjE6NDk6MDQrMDA6MDDo8ZVfAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDIxOjQ5OjA0KzAwOjAwmawt4wAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="pdf417">PDF417</h3>
<p>The <strong>PDF417</strong> barcode symbology is 2D stacked-linear barcode that can encode full 256 character extended-ASCII.</p>
<p>Variants:</p>
<ul>
<li><a href="#compact-pdf417">Compact PDF417</a> is a shortened form of the PDF417 barcode that is used in applications where the space for the symbol is restricted.</li>
<li><a href="#micropdf417">MicroPDF417</a> is a smaller variant of the PDF417 barcode.</li>
<li><a href="#hibc-symbols">HIBC PDF417</a> is a variant of PDF417 that should be used when encoding HIBC formatted data.</li>
</ul>
<p>Standards: ISO/IEC 15438, DD ENV 12925, AIM USS - PDF417.</p>
<h4 id="data-and-options-14">Data and Options</h4>
<ul>
<li>The data field can contain any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</li>
<li>The <strong>eclevel</strong> option is used to specify the error correction level, from 1 to 5. The default is to choose a standard level of error correction that is determined by the encoded data length.</li>
<li>The <strong>columns</strong> option specifies the number of columns (or groups of bars) in the output symbol, from 1 to 30.</li>
<li>The <strong>rows</strong> option specifies the minimum number of rows in the symbol, from 3 to 90.</li>
<li>If <strong>rows</strong> is unspecified the encoder will select a number that creates a symbol that is the minimum size to represent the given data.</li>
<li>The <strong>rowmult</strong> option is used to specify how tall each bar is, with respect to the minimum module width. The default is 3.</li>
<li><em>Deprecated: Use <a href="#compact-pdf417">Compact PDF417</a> instead. The <strong>compact</strong> option is used to create a compact/truncated PDF417 symbol that has fewer bars per row that a standard symbol and hence is more narrow.</em></li>
<li>The <strong>raw</strong> option denotes that the data field is providing the input as a pre-encoded codewords in <code>^NNN</code> format, suitable for direct low-level encoding.</li>
<li><em>Deprecated: Internal use.</em> The <strong>ccc</strong> option identifies this symbol as a <em>CC-C</em> 2D component of a <a href="#gs1-composite-symbols">GS1 Composite</a> symbol.</li>
</ul>
<h4 id="examples-11">Examples</h4>
<pre><code>Data:    PDF417
Options: 
Encoder: pdf417
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGcAAAAVCAMAAABsdQABAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACNSURBVEjH7VVBDsAwCJL/f3qJRaDHHRfXZsmmRUygrooLZwPx1W8oZ9Cr8/0wdiEwNYoolAI7eFQFA24Y7hLJA3eykcfq8CCFmIDbObXr7nErjwzKBGWBbYyQDWnpn+fUkp91z0euVGvwZNrKY4WGLISCZ6hGbUIc3sfDjEaq7Ryq6Tc0Fhfjm7nzVZ4H6UwDspk1L4sAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMjE6NTA6NTIrMDA6MDD+WloLAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDIxOjUwOjUyKzAwOjAwjwfitwAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<pre><code>Data:    P^068F417
Options: parse columns=2 rows=15
Encoder: pdf417
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGcAAAAtCAMAAACEXIXBAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAECSURBVFjD5ZZLDoRACESp+196Epv6oG5mK2MytgTqdWgEq/qHcwF6OCsbCscRdZY46wzpCFgTllrA4RpHHQy+wjAlJCvFtRzlupV5EDowbefSCI63tJFTNYJh7RZ+GFjS8Srs4zCqumpH/l8NjBmHt44TJIxIlfGzrgl3x9jHGe3wtYzvBoX8W9ef4tAlRjTLmbKARKMfVG5wH4cpj8jw0ShSC4B3pp0s5Hh6R5cs9VX1gy5wj2uW9FKOM+1h40/GGNI5raOH/N93vsHpf1iN8PiKnEPIopWyCzm+Iw9H0JLFruy3tZPjXFM6s57lLG9rkriSE858/W9dUiQZ7sP745wfPeQH8PvJzlMAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMjE6NTI6MDQrMDA6MDDRn7FoAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDIxOjUyOjA0KzAwOjAwoMIJ1AAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<pre><code>Data:    Strong error correction
Options: columns=2 eclevel=5
Encoder: pdf417
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGcAAAB1CAMAAABkgQ9bAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAJ4SURBVGje5ZbbcqRADEPl///p1AzWxcwLPKadzVYRaPt0IbUM0D91/au6Lj+/n7++N+LW5ya+i7g0VlwXfQP9FNf6BRy2VTfwf9eRVhfTHN3aydG7BsFU5SqqSmHYpTe3m6NL25gu7uqyRLb0AC/j+Fwj88CtQ4WKrYEHYCknq/j+K4JACHq7VPDS16dx+ByURLMn6FQKdLyer+XYxlQHNRC5Muih2UZOKuITL61KzXlfHBp7JyeCQNflxloZSRv5CrzzwUGcyjfPWBgHX7r1veH7pRwda9pUrZFCEUebV2xgL4eB2H1o2hCqkCs0kiJKlnHydGsQpXGHWDHTxVjNKd9OKQB+5RRyhWve5c5BHFq5XFQ65sXJPZwMofBcn9M4YVoh6ey+oWY/JZZ2G0cTBf3ekVv42QQabP2WcloF1cW3TQwehLch2ltfn8UpvWV2GROadRRylISQyzhDnPrpKQnywZjgD/U5jkNNqIvCkUnK0jGcbPmn+hzGGW898zQC1o15AAra0GaOcmDExHimY8DgcFCs5Hja8EMnzr5azs+b0OrV98FpHAkR89r6CI9byW5OfNPEZNHBl4V9CHo5k3cnx1VFIUpGNsd/R+bGBvdxGJVt6ps4GZca5C557uvTOBGIPv5uH72hbdDP+XAdh9a0l5EjJ7ahG5kTr3LnIE587PQyV41+tHM5btVgIScy1L5mLDgG0u5yt9Zu5MSomW899PFlP4hRtZRju1Zg+/WHrxmqtxJs5dwjYcJdF+EAjXTQ4Ps4NrfK07LeSUZohMnz+XMaJ9450zH7JsH52TK+nHMHcXTuyySHZzeuaMwSrnie1/+X8wfQ3xXTJtt/SwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMTo1MzoxMCswMDowMAa4/tsAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjE6NTM6MTArMDA6MDB35UZnAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<pre><code>Data:    ^453^178^121^239
Options: raw columns=2
Encoder: pdf417
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGcAAAAVCAMAAABsdQABAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACNSURBVEjH7VVBDsAwCJL/f3qJRaDHHRfXZsmmRUygrooLZwPx1W8oZ9Cr8/0wdiEwNYoolAI7eFQFA24Y7hLJA3eykcfq8CCFmIDbObXr7nErjwzKBGWBbYyQDWnpn+fUkp91z0euVGvwZNrKY4WGLISCZ6hGbUIc3sfDjEaq7Ryq6Tc0Fhfjm7nzVZ4H6UwDspk1L4sAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMjE6NTM6NTIrMDA6MDAVbeEIAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDIxOjUzOjUyKzAwOjAwZDBZtAAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="compact-pdf417">Compact PDF417</h3>
<p><strong>Compact PDF417</strong> is a shortened form of the <a href="#pdf417">PDF417</a> barcode that is used in applications where the space for the symbol is restricted.</p>
<p>Also known as: Truncated PDF417</p>
<p>Variants:</p>
<ul>
<li><a href="#pdf417">PDF417</a> is the larger, more popular variant.</li>
<li><a href="#micropdf417">MicroPDF417</a> is a smaller variant of the PDF417 barcode.</li>
<li><a href="#hibc-symbols">HIBC PDF417</a> is a variant of PDF417 that should be used when encoding HIBC formatted data.</li>
</ul>
<p>Standards: ISO/IEC 15438, DD ENV 12925, AIM USS - PDF417.</p>
<h4 id="data-and-options-15">Data and Options</h4>
<ul>
<li>The data field can contain any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</li>
<li>The <strong>eclevel</strong> option is used to specify the error correction level, from 1 to 5. The default is to choose a standard level of error correction that is determined by the encoded data length.</li>
<li>The <strong>columns</strong> option specifies the number of columns (or groups of bars) in the output symbol, from 1 to 30.</li>
<li>The <strong>rows</strong> option specifies the minimum number of rows in the symbol, from 3 to 90.</li>
<li>If <strong>rows</strong> is unspecified the encoder will select a number that creates a symbol that is the minimum size to represent the given data.</li>
<li>The <strong>rowmult</strong> option is used to specify how tall each bar is, with respect to the minimum module width. The default is 3.</li>
<li>The <strong>raw</strong> option denotes that the data field is providing the input as a pre-encoded codewords in <code>^NNN</code> format, suitable for direct low-level encoding.</li>
</ul>
<h4 id="examples-12">Examples</h4>
<pre><code>Data:    A truncated PDF417
Options: columns=4
Encoder: pdf417compact
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGcAAAAPCAMAAADOOCH8AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAB5SURBVDjL5VJBEgAhCIL/f3pnTUC/UHUJNWFEoA/PJQP+RwUKsCGVPLWqSAAVIE8q6Qd4MAAboxnULL3yha1gfgJe4WHPWNO3aWvYKR7VXba4ouRuHq+0d5UilB1aaZsiPfaIZuArPJqtWk5XwmYd4LACS9Fe7qt4Pj0GAsV9ARrzAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIxOjU1OjIwKzAwOjAwhSmJfwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMTo1NToyMCswMDowMPR0McMAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="qr-code">QR Code</h3>
<p>The <strong>QR Code</strong> symbology is a 2D matrix-style barcode symbology that can encode full 256 character extended-ASCII.</p>
<p>Also known as: Quick Response Code.</p>
<p>Variants:</p>
<ul>
<li><a href="#micro-qr-code">Micro QR Code</a> is a small QR Code that is used in applications that require a small symbol space.</li>
<li><a href="#gs1-qr-code">GS1 QR Code</a> is a variant of Data Matrix that should be used when encoding data that is in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a>.</li>
<li><a href="#hibc-symbols">HIBC QR Code</a> is a variant of QR Code that should be used when encoding HIBC formatted data.</li>
</ul>
<p>Standards: ISO/IEC 18004, JIS X 0510, ITS - QR Code, AIM ISS - QR Code.</p>
<h4 id="data-and-options-16">Data and Options</h4>
<ul>
<li>The data field can contain any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</li>
<li>The <strong>eclevel</strong> option is used to specify the error correction level:
<ul>
<li><code>eclevel=L</code> - Low</li>
<li><code>eclevel=M</code> - Medium (default)</li>
<li><code>eclevel=Q</code> - Quality</li>
<li><code>eclevel=H</code> - High</li>
</ul></li>
<li>The <strong>version</strong> option is used to specify the size of the symbol, 1 to 40.</li>
<li>If unspecified the encoder will select the version of the symbol that is the minimum size to represent the given data at the selected error correction level.</li>
<li>The <strong>format</strong> option is used to select between <code>format=full</code> and <code>format=micro</code> (deprecated) symbol types. Alternatively, <code>format=any</code> will select the optimal symbol format for the given data. By default <em>full</em> format symbols will be generated.</li>
<li>Note: It is recommended that the <a href="#micro-qr-code">Micro QR Code</a> encoder is used for such symbols.</li>
</ul>
<h4 id="examples-13">Examples</h4>
<pre><code>Data:    QR Code
Options: 
Encoder: qrcode
</code></pre>
<pre><code>Data:    QR ^067ode
Options: parse
Encoder: qrcode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAMAAADyHTlpAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACoSURBVDjLrZOBDoAgCETl/3+6uUZyB2pnsdlInwMObA3MrK/+vf2FbVB7zDH8d19FOTh6gTlGOaH/UFynKAb0Bmx1XaK5sRh8OQMT1MhGEelEQH2LhYnhSYGXKG6NNFKDBZSfCV6IMipodciyqWidE14Kqgooti8OHYyOgOYhROFAAQHl4LMLKoolcBOKyZJRTIBq/4BygWGUJDQD+dGoKDeWO16Ca/QCg6cDTbo+hK8AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTI6MTQ6MjgrMDA6MDAodpaxAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEyOjE0OjI4KzAwOjAwWSsuDQAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<pre><code>Data:    QR CODE 1234
Options: version=10 eclevel=Q
Encoder: qrcode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHIAAAByCAMAAAC4A3VPAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAANNSURBVGjezZXBcoNADEPD//90D5RiSc/kVBtm2kmA3edoJfvzkes4zv/ndX4/79Vn1//rbq66nupnvIaQx0EvV5hueD+911xQ3eH+XhlbSN7mY09dbBL/Xulg2e0FSLWSSu+yqfAEeieytwpkCg7CQe9BqjW6UOTTej9lzyA1uRxBqlD/8/dwjSAPuMg2JCML7qaK3VeQKW1tW2R5UkkDRgH6e7KArMK4pb09aEsngzjEByD0nzFkSpgidaag+5QFbxazSL/JZupsQQOL3y7CLiBV4xw0dA7ZBBSjOVDDbSF9tLgwLk4Xby/bj2sT2TU0X06ACk5hXXbrCKNIkoIlzBApsq7J9zVQG0i1tIacgM+tXC+UdRyZr6ZUT01dbeXC4vBaQnpIPCoaklzRl6Rv/35aQOZGaWsqSD/50ajUIfQ4kqTS4PDwoohpyVz8FvKptbEZPBiecDqOsmYBmcFXM/jwslhDgS43to8VpDc837QziFtO5fafsock45M1OhCZx9uCQjeQuo3GXRdmY+BQZVTcjPNIN00nrBupCq7Dy4X1H7WBzCGbh81PKEDdXjYqxpHqJbV9RsJjom0sYmDvxlkOIkksuqO2ivOJ+HdNcAN5W0JDwstcYNqylpJtdBPpjYxagUpd/9cyHN+YcxiZ7diN4QXwWKutwYu3IheQ38LtBs/2nqbBBvDZROoP9w364dWNbRcWWuACUgF05PlOV4RbpQ3TOFK30IUuPUPdYiqxS76F1OXZFtgiPrC92C5c0n0GkV0zU3uw2NQucrXZcgFJBiFZ1Cxkfg0WvyHJHERySLI/aUk0vLh1pDU3kHlbl1RY1/IpPhm0TaQfd8Zbn6ZF8j7Zxs5pGOlLK1LjoSJSpHxs1WAZfBjJ4aYtuTlQC6DGYfNyGKlR9+V0EroF42nwNT12COmQtFAtqwbI23keTcq7heQTJVP0QXAbeQFNWxhD5k/m1v7QvIrU/FSNto0kye57nOQsMaXUfTeQJJAvdKO4xNVkJHd3HJNIF7Vuk3Fxsb6PZjiEFaSLxRulvF6c/oCHyLwM6THRTy6d206PqRT2CiRrkcKR0fybD8c9ZD72aFTIU7ugoYbCjiNdvi743O61GN82B8MK8gcZLxmN+cXAigAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxMjoyMjozOCswMDowMHAggGkAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTI6MjI6MzgrMDA6MDABfTjVAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="micro-qr-code">Micro QR Code</h3>
<p>The <strong>Micro QR Code</strong> symbology is a smaller variant of <a href="#qr-code">QR Code</a> that is used in applications that require a small symbol space.</p>
<p>Also known as: Micro Quick Response Code.</p>
<p>Variants:</p>
<ul>
<li><a href="#qr-code">QR Code</a> is the more popular, larger variant.</li>
</ul>
<p>Standards: ISO/IEC 18004, JIS X 0510, ITS - QR Code, AIM ISS - QR Code.</p>
<h4 id="data-and-options-17">Data and Options</h4>
<ul>
<li>The data field can contain any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li>An appropriate size will be selected to work around the following restrictions:
<ul>
<li>An M1 symbol is only compatible with numeric data.</li>
<li>An M2 symbol is only compatible with alphanumeric data.</li>
</ul></li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</li>
<li>The <strong>version</strong> option is used to specify the size of the symbol, either <code>version=M1</code>, <code>version=M2</code>, <code>version=M3</code> or <code>version=M4</code>.</li>
<li>The <strong>eclevel</strong> option is used to specify the error correction level:
<ul>
<li><code>eclevel=L</code> - Low (default)</li>
<li><code>eclevel=M</code> - Medium; Not compatible with M1 symbols</li>
<li><code>eclevel=Q</code> - Quality; Only compatible with M4 symbols</li>
</ul></li>
<li>If unspecified the encoder will select the version of the symbol that is the minimum size to represent the given data at the selected error correction level.</li>
</ul>
<h4 id="examples-14">Examples</h4>
<pre><code>Data:    01234567
Options: 
Encoder: microqrcode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABZSURBVCjPnZFJDgAgCAPL/z/twbAp1IWERB0CpQIpRDxBkVh49Q2KzebtDwFvCCbthLJ4PXOUjSoeCyRbWAlBcVmVEto2yO1ck6FunzCtQLtFNoKg9vNB0ACRFQEx3Ka0PQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxMjoyMDo1NiswMDowMOKFIo4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTI6MjA6NTYrMDA6MDCT2JoyAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h2 id="one-dimensional">One-Dimensional</h2>
<h3 id="code-128">Code 128</h3>
<p><strong>Code 128</strong> is an arbitrarily long, high-density barcode symbology that can be used to encode full 256 character extended-ASCII.</p>
<p>Also known as: USD-6, USS-128, Code 128A, Code 128B, Code 128C.</p>
<p>Variants:</p>
<ul>
<li><a href="#gs1-128">GS1-128</a> is a variant of Code 128 that should be used when encoding data that is in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a>.</li>
<li><a href="#hibc-symbols">HIBC Code 128</a> is a variant of Code 128 that should be used when encoding HIBC formatted data.</li>
</ul>
<p>Standards: ISO/IEC 15417, ANSI/AIM BC4 - ISS Code 128, BS EN 799.</p>
<h4 id="data-and-options-18">Data and Options</h4>
<ul>
<li>The data field input can consist of any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li>The mandatory check digit is calculated automatically.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII or extended-ASCII value, useful for specifying unprintable characters, e.g. <code>^029</code> for <em>GS</em>, <code>^209</code> for <em>Ñ</em>, etc.</li>
<li><em>FNC4</em> function characters will be inserted automatically to allow the encoding of extended ASCII characters.</li>
<li>When the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by <code>^FNC1</code> through <code>^FNC3</code>.</li>
<li><em>Deprecated: For internal use.</em> When the <strong>parsefnc</strong> option is specified, the special pseudo characters <code>^LNKA</code> and <code>^LNKC</code> at the end of the symbol indicate that a GS1-128 symbol includes a <em>CC-A/B</em> or <em>CC-C</em> GS1 composite 2D component.</li>
<li>The <strong>raw</strong> option denotes that the data field is providing the input as pre-encoded codewords in <code>^NNN</code> format, suitable for direct low-level encoding.</li>
</ul>
<h4 id="example-1">Example</h4>
<pre><code>Data:    Count0123456789!
Options: includetext
Encoder: code128
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALIAAABQCAMAAACK2N/TAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7u3d3dzMzMiIiImZmZqqqqu7u7d3d3VVVVREREZmZm4ucguwAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAGzSURBVGje7dTbbsMgDAZgDNjAmvd/3tnmmLWaKm29+1FKHQ7hA0JCCBTIrp75L4w/D8KILBzNeodR7+Vh3IXeu9f2MKwGtMbZ7cJqsFvNvzXu6LtaggwyyCCDDDLIIIMMMsgggwwyyCCDDDLIIIMMMsgggwwyyCCDDDLIIIMMMsgggwwyyCCDDDLIIIMMMsggg/x3cn/Ojbz/hu9etud49CWKtFOPY/zxMA3Tuh+18d7gSIGeup/Ed1JmlvSivJcVlqp504y4SNHYc4pfWtTaqNCSR2uX1oq1z56TV76b3idH1iFtlKzKbFfMSe8T16pLxX5RtcHN6H0s57puax7PEi9p917/Ty59I1utTKlRbrp+xeJOFpfOwbPHLVtkRSys6yul5EkvpWi5RLo+R5Zl0REb7avO6k3OZW/M9GisU+AREudsTyzC5/L/L9kXLhqmvCKfWzzEXqKb0ifbfFoyycUvmu/MR8i6IJWjba6/1PxI+ZHSI1Ettc3jJ9cllPsBk3780mUz8zjquaR+Guz4FZsc2/sm8hkyRf829I/T+elIR/mZUnyKjxfA2/dHvuj7S/oGAnUhz+tlBNEAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTM6MzQ6MDUrMDA6MDCOfpBIAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEzOjM0OjA1KzAwOjAw/yMo9AAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="code-39">Code 39</h3>
<p>The <strong>Code 39</strong> barcode symbology is discrete, variable length and self-checking.</p>
<p>Also known as: Code 3 of 9, LOGMARS, Alpha39, USD-3, USS-39.</p>
<p>Variants:</p>
<ul>
<li><a href="#code-39-extended">Code 39 Extended</a> is a variant of Code 39 that can be used to encode full 128 character ASCII with the use of shift character combinations.</li>
<li><a href="#hibc-symbols">HIBC Code39</a> is a variant of Code 39 that should be used when encoding HIBC formatted data.</li>
<li>AIM USD-2 is a subset of Code 39 containing the characters A-Z, 0-9, <em>space</em>, <code>-</code> and <code>.</code>.</li>
</ul>
<p>Standards: ISO/IEC 16388, ANSI/AIM BC1 - USS Code 39, BS EN 800, MIL STD 1189.</p>
<h4 id="data-and-options-19">Data and Options</h4>
<ul>
<li>The data field can hold any of the following:
<ul>
<li>Numbers 0-9</li>
<li>Capital letters A-Z</li>
<li>Symbols <code>-.$/+%*</code> and <em>space</em></li>
</ul></li>
<li>The <strong>includecheck</strong> option calculates the check digit.</li>
<li>The <strong>includecheckintext</strong> option makes the calculated checksum appear in the human readable text.</li>
<li>The <strong>hidestars</strong> option suppresses the asterisks in the human readable text.</li>
</ul>
<h4 id="examples-15">Examples</h4>
<pre><code>Data:    CODE39
Options: includetext
Encoder: code39
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAH8AAABQCAMAAAAHmVrCAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACRQTFRFAAAA////7u7uu7u7zMzMiIiImZmZ3d3dd3d3qqqqZmZmREREtbepIwAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEXSURBVGje7dLRcgIxCAVQCAkB+///291VWy5qX/p6MzqzNwOcTVREVUVFHt/ydO3X3efOlV67Sr2UWqzW1in06dOnT58+ffr06dOnT58+ffr06dOnT58+ffr06dOnT58+ffr06dP/r/9c+CSPLLAjb2v1p36M33TtjDqjecejmdY11/Jdc6xZ4nbzgdm89md6wjx3BMATzYhaP5bqspYrGNfnc9aW1/Up7wfecf6A8hw467SH4/DckB07LOp96XFbN3y76onuPSvZht3PErgBNxjWjz/gvJoOGT1pvTrP2aXgtKweKNp9HnlOnLHazP6CcP6+0g1/b/fab1+xEnPc6n14///lGvpxvfo6dst/tL9bG+v7OFzfiQkWDY8xJzoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTM6NTE6NTYrMDA6MDD56oW2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEzOjUxOjU2KzAwOjAwiLc9CgAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<pre><code>Data:    CODE39
Options: includecheck includetext includecheckintext
Encoder: code39
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI8AAABQCAMAAAAX1dZbAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7uu7u7zMzMiIiImZmZ3d3dd3d3qqqqZmZmREREVVVVWTDgoAAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAE/SURBVGje7ZLbbsNACESBNeyS9v+/t7YbJwy9qY+RBjnSDobhLLGIqoqK3H/ldOZr9sqc6mtXqZdSi9WXksdbdBLykIc85CEPechDHvKQhzzkIQ95yEMe8pCHPOQhD3nIQx7ykIc85CEPechDHvKQhzzkIQ95yPMqPFfgSe5aICPf1uqj3uypzoyhh2p7X5324xhaY3OPWfXyrcgZIwz1iNqfGQl+EXVADjOcCEo016r95qo+mq4A63x+1tq0n89z+jSbAAjz9/0saE9D74PF6gL26pygAzvGqvvUfZs32Ib7gAKYLzrnVhGa+eddFyZgw2v09ZiDzPAmYQbOl+al2zGrFByz4T4L93/obUMPb54AfMvsF4D99MgY+L1E1P7xtjxRr1vdV/TvOcFO39Xq//cnj9ps2vRfMbG+2/0eH4yHGQDOVnVzAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDEzOjUyOjQzKzAwOjAwjE8RjAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxMzo1Mjo0MyswMDowMP0SqTAAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<pre><code>Data:    CODE39
Options: hidestars includecheck includetext
Encoder: code39
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI8AAABQCAMAAAAX1dZbAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACRQTFRFAAAA////7u7uzMzMiIiImZmZ3d3dd3d3u7u7qqqqZmZmREREJ4b60gAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEdSURBVGje7dLhbsIwDEZRO4mbBN7/fdcWymyXTTB+TbpRkfqliXNqKqKqoiL3n7vb5/3sMbOn8y63XtzauPpI8ngaKwkePHjw4MGDBw8ePHjw4MGDBw8ePHjw4MGDBw8ePHjw4MGDBw8ePHjw4MGD5794jhHv5J4lzMjTtfpYX8p32mdKrKGanvtKfsFt1NZs8bm36uJiw0rMw/z+OW2GemZDXx4nT2mqbaTsAX2/fs6actuvP3tmiXmzFN+A9bC5hGxxx+i+n7p28/KBJxW/vWuPE8P/AX3k9pTYj2mf9KduZ7kebWcP/8I99X/NtcYa+fwMfsezvs6I34uZrzeuvc2Y+8X3y/L3PFvRl8fZo2VJ+Y1y21ji+lzu9/EFREAYDZXeXuwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTM6NTM6MjMrMDA6MDCl4nM1AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEzOjUzOjIzKzAwOjAw1L/LiQAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="code-39-extended">Code 39 Extended</h3>
<p>The <strong>Code 39 Extended</strong> barcode symbology is discrete, variable length and self-checking. It is based on <a href="#code-39">Code 39</a> but can encode full 128 character ASCII by using shift combinations.</p>
<p>Also known as: Code 39 Full ASCII.</p>
<p>Variants:</p>
<ul>
<li><a href="#code-39">Code 39</a> is a simpler variant of Code 39 Extended.</li>
</ul>
<p>Standards: ISO/IEC 16388, ANSI/AIM BC1 - USS Code 39, BS EN 800.</p>
<h4 id="data-and-options-20">Data and Options</h4>
<ul>
<li>The data field can consist of any ASCII data.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters, e.g. <code>^029</code> for <em>GS</em>, etc.</li>
<li>The <strong>includecheck</strong> option calculates the check digit.</li>
<li>The <strong>includecheckintext</strong> causes the calculated check digit to appear in the human readable text.</li>
<li>The <strong>hidestars</strong> option suppresses the asterisks in the human readable text.</li>
</ul>
<h4 id="examples-16">Examples</h4>
<pre><code>Data:    Code39 Ext!
Options: includetext includecheck
Encoder: code39ext
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAT8AAABQCAMAAABYrYKiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAC1QTFRFAAAA////7u7uu7u7zMzMiIiImZmZ3d3dREREqqqqd3d3ZmZmVVVVIiIiMzMz71L09QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAH5SURBVHja7dXbcoQgDIBhQhAWenj/x6119kBQwzrt5Z/ZbV1JAD8RQxCRICHcv93Rdv75X6TLNBlD+71VDrJsvUg/3rN2qN6OuzF39bvxz2fZz+/Vw2HlgYoZLwy94Icffvjhhx9++OGHH3744Ycffvjhhx9++OGHH3744Ycffvjhhx9++OGHH3744Ycffvjhhx9++OGHH3744Ycffvjhhx9++OGHH3744Ycffvjhhx9++OGHH3744Ycffvjhhx9++OGHH3744YcffvgNfo+wR0fzE/P3eH5ykmXrH+djfP3azsS+et+brT9WOB8/dNd4XnmsEvYt66Gq9JGWJRe5EvF2KX2IWnM14+esTnrJqvlK/9NrafpON68wXkFqa/384yKymB5TmvRXmt8+qV+voP+xbB832eRrjK73ohrf95iH9VrXXzPTqeNgTdW/Hq3e+ouzetFmgHOUD9/PLL/YSmoO0L/7Wa8gpaS+//HZSOqvIC3DetjptPbpP0PR+tY8uV/DcMvk9sw85s+HCesVxuZfL+kS0rpY6x/80ht76Qjg7gdt2FHW/dpdXxdX18XY+a23X82Ecq3uDV5qvXkbeq7qPV9r+/D+qK6H3lr76Ez0q6RvbwVpVX9/zpdeR1M/icOKif72MX3BxUlCiZfSL0eZdDi7Pjd+APPEO6ZnZrQrAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDEzOjU1OjEwKzAwOjAwF5seDAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxMzo1NToxMCswMDowMGbGprAAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<pre><code>Data:    Code39^029Extended
Options: parse includecheck
Encoder: code39ext
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAc8AAABICAMAAACnZI7NAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAADuSURBVHja7dFBDkBADAXQ/vtfWoiYGsTGRvIWwpj+TnlVSSpV+9WetvfHPWmVp4ppf9/NTdU5n/TzjuyU7tnczTf3u8zzPHWfd3R4mfcpv67qg//xmh8ntX41fQVPnjx58uTJkydPnjx58uTJkydPnjx58uTJkydPnjx58uTJkydPnjx58uTJkydPnjx58uTJkydPnjx58uTJkydPnjx58uTJkydPnjx58uTJkydPnjx58uTJkydPnjx58uTJkydPnjx58uTJkydPnjx58uTJkydPnjx58uTJkydPnjx58uTJkydPnjx58uTJ8z+eC+fVRTGqKKe5AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDEzOjU1OjQ2KzAwOjAwPKslUgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxMzo1NTo0NiswMDowME32ne4AAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="code-93">Code 93</h3>
<p><strong>Code 93</strong> is a continuous, variable length, self-checking barcode symbology.</p>
<p>Also known as: USD-7, USS-93.</p>
<p>Variants:</p>
<ul>
<li><a href="#code-93-extended">Code 93 Extended</a> is a variant of Code 93 that can be used to encode full 128 character ASCII with the use of special shift character combinations.</li>
</ul>
<p>Standards: ANSI/AIM BC5 - USS Code 93, ITS 93i.</p>
<h4 id="data-and-options-21">Data and Options</h4>
<ul>
<li>The data field can hold any of the following:
<ul>
<li>Numbers 0-9</li>
<li>Capital letters A-Z</li>
<li>Symbols <code>-.$/+%*</code> and <em>space</em></li>
</ul></li>
<li><em>Deprecated: For internal use.</em> The <strong>parsefnc</strong> option allows the special shift characters to be supplied as <code>^SFT$</code>, <code>^SFT%</code>, <code>^SFT/</code> and <code>^SFT+</code>.</li>
<li>The <strong>includecheck</strong> option calculates the two check digits.</li>
</ul>
<h4 id="examples-17">Examples</h4>
<pre><code>Data:    CODE93
Options: includecheck
Encoder: code93
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABICAMAAAA3UqArAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABNSURBVFjD7c2JDQAgCAQwb/+lfYjPDKYqiIbQ1jL2WJknycrrVZFTVGP2Z123PD3PkD0ZAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoH8hHTM6Q7pb8ABYwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxNDowMDozNCswMDowMEv8XDwAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTQ6MDA6MzQrMDA6MDA6oeSAAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<p>Code 93 including a special shift combination <code>(/)A</code> representing <em>!</em>:</p>
<pre><code>Data:    CODE93^SFT/A
Options: parsefnc includecheck
Encoder: code93
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG0AAABICAMAAADLR4vhAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABSSURBVFjD7c3HDQAgDASw3P5LU4JgAZ6mXpCIqzLnHFkryT531Ts3dO7rxeoG/f00uM+vxyFoNBqNRqPRaDQajUaj0Wg0Go1Go9FoNBqNRvuiDTKNDzHCDDi2AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDE0OjAxOjExKzAwOjAwtCMf2AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxNDowMToxMSswMDowMMV+p2QAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="code-93-extended">Code 93 Extended</h3>
<p>The <strong>Code 93 Extended</strong> barcode symbology is continuous, variable length and self-checking. It is based on <a href="#code-93">Code 93</a> but can encode full 128 character ASCII using four additional shift characters: <em>($)</em> <em>(%)</em> <em>(/)</em> <em>(+)</em></p>
<p>Also known as: Code 93 Full ASCII.</p>
<p>Variants:</p>
<ul>
<li><a href="#code-93">Code 93</a> is a simpler variant of the Code 93 Extended barcode symbology.</li>
</ul>
<p>Standards: ANSI/AIM BC5 - USS Code 93, ITS 93i.</p>
<h4 id="data-and-options-22">Data and Options</h4>
<ul>
<li>The data field can consist of any ASCII data.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters, e.g. <code>^029</code> for <em>GS</em>, etc.</li>
<li>The <strong>includecheck</strong> option calculates the two check digits.</li>
</ul>
<h4 id="examples-18">Examples</h4>
<pre><code>Data:    Code93Ext!
Options: includecheck
Encoder: code93ext
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL4AAABICAMAAAB/Yb+rAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAB8SURBVGje7c5BDoAgDATA7f8/LQqE6gs8jBhpFtxMUmONp+63qp5vsoc17uTkr2SGcztjPhW9OXPuPSvJOs6uev3eCtplfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8/P/wL+esG5HI5+AOAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDE0OjAyOjEwKzAwOjAw+WOvbwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxNDowMjoxMCswMDowMIg+F9MAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<pre><code>Data:    Code93^029Extended
Options: parse includecheck
Encoder: code93ext
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQ8AAABICAMAAADf24BsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACkSURBVHja7dABCoAwCAVQvf+lW5lssbpAvIqSjzN5ETnuceX5ZOb1jujiLjuZ+SOpsD6z7KFz8tLco6LqdeCe7Kfyredrsb2nf7TuXfvy4MGDBw8ePHjw4MGDBw8ePHjw4MGDBw8ePHjw4MGDBw8ePHjw4MGDBw8ePHjw4MGDBw8ePHjw4MGDBw8ePHjw4MGDBw8ePHjw4MGDBw8ePHjw4PFjjwNvMCjJt0cydwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxNDowMjo0NyswMDowMHQkn4UAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTQ6MDI6NDcrMDA6MDAFeSc5AAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="interleaved-2-of-5">Interleaved 2 of 5</h3>
<p><strong>Interleaved 2 of 5</strong> is a high-density numeric barcode symbology.</p>
<p>Also known as: ITF, Code 2 of 5 Interleaved, USD-1, USS-Interleaved 2 of 5.</p>
<p>Variants:</p>
<ul>
<li><a href="#itf-14">ITF-14</a> is a variant of Interleaved 2 of 5 that should be used when encoding a fourteen-digit GTIN.</li>
</ul>
<p>Standards: ISO/IEC 16390, ANSI/AIM BC2 - USS Interleaved 2 of 5, BS EN 801.</p>
<h4 id="data-and-options-23">Data and Options</h4>
<ul>
<li>The data can consist of any number of digits.</li>
<li>If the length of the symbol including the possible check digit would be odd then the data is prefixed by <em>0</em>.</li>
<li>The <strong>includecheck</strong> option calculates the check digit.</li>
<li>The <strong>includecheckintext</strong> option makes the calculated checksum appear in the human readable text.</li>
</ul>
<h4 id="examples-19">Examples</h4>
<pre><code>Data:    0123456789
Options: 
Encoder: interleaved2of5
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGMAAABICAMAAADVjrtSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABJSURBVFjD7c1BCgAgCATA9f+fjiSiQ907DGHookxS89X8s6qn6r7zI91Z8ri47IXBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYHxhDAqCDYF0F6LaAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIxOjU5OjQyKzAwOjAwzuVxXwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMTo1OTo0MiswMDowML+4yeMAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<pre><code>Data:    2401234567
Options: includecheck includetext includecheckintext
Encoder: interleaved2of5
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGMAAABICAMAAADVjrtSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABISURBVFjD7c1BCgAgCARA/f+no5Lq4L3LIIi4ykTkqpg9a8pnvkmerLvfm+6jEgaDwWAwGAwGg8FgMBgMBoPBYDAYDAaD8dsYCoINgcjLUbwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMjI6MDA6MjgrMDA6MDCccszQAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDIyOjAwOjI4KzAwOjAw7S90bAAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h2 id="supply-chain">Supply Chain</h2>
<h3 id="gs1-datamatrix">GS1 DataMatrix</h3>
<p><strong>GS1 DataMatrix</strong> is an implementation of the <a href="#data-matrix">Data Matrix</a> (ECC 200) barcode symbology with <a href="#gs1-application-identifier-standard-format">GS1 formatted</a> data.</p>
<p>Standards: ISO/IEC 16022, ANSI/AIM BC11 ISS, GS1 General Specifications.</p>
<h4 id="data-and-options-24">Data and Options</h4>
<ul>
<li>The data field input is provided in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a> starting with the mandatory <em>(01)</em> Application Identifier.</li>
<li>Note that it is not necessary to specify <em>FNC1</em> characters since the encoder will insert these automatically where necessary.</li>
<li>The <strong>format</strong> option is used to specify the shape of the symbol, either <code>square</code> (default) or <code>rectangle</code>.</li>
<li>The <strong>columns</strong> and <strong>rows</strong> options are used to specify the size of the symbol.</li>
<li>The <strong>version</strong> option can also be used to specify the symbol size, as <code>version=RxC</code>. Valid options are:
<ul>
<li>With <code>format=square</code>: <em>10x10</em>, <em>12x12</em>, <em>14x14</em>, <em>16x16</em>, <em>18x18</em>, <em>20x20</em>, <em>22x22</em>, <em>24x24</em>, <em>26x26</em>, <em>32x32</em>, <em>36x36</em>, <em>40x40</em>, <em>44x44</em>, <em>48x48</em>, <em>52x52</em>, <em>64x64</em>, <em>72x72</em>, <em>80x80</em>, <em>88x88</em>, <em>96x96</em>, <em>104x104</em>, <em>120x120</em>, <em>132x132</em>, <em>144x144</em></li>
<li>With <code>format=rectangle</code>: <em>8x18</em>, <em>8x32</em>, <em>12x26</em>, <em>12x36</em>, <em>16x36</em>, <em>16x48</em></li>
</ul></li>
<li>If <strong>columns</strong>, <strong>rows</strong> and <strong>version</strong> are unspecified the encoder will default to creating a symbol of the specified <strong>format</strong> that is the minimum size to represent the given data.</li>
</ul>
<h4 id="example-2">Example</h4>
<pre><code>Data:    (01)95012345678903(3103)000123
Options: 
Encoder: gs1datamatrix
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACMSURBVDjLrZNRDsAgCEPh/pdeTOYotRv9mIkam2eogBGROU8PWtsa77sLoYTnrdyeLCietdBS4DBA2npd/ngfQSxksnUX6r56OCiLAZ0yhoeyGJAqBqXZghjAYsPbDAj7r8OAW5CyLhvFhpTSvpQFdes98JGnD0i123l9hkrkQM2RAW2Bv5TI0wj9Mi6XLgJN9k759QAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMDoyODo1MyswMDowML9X3U0AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjA6Mjg6NTMrMDA6MDDOCmXxAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="gs1-qr-code">GS1 QR Code</h3>
<p><strong>GS1 QR Code</strong> is an implementation of the <a href="#qr-code">QR Code</a> barcode symbology with <a href="#gs1-application-identifier-standard-format">GS1 formatted data</a>.</p>
<p>Standards: ISO/IEC 18004, ITS - QR Code, GS1 General Specifications.</p>
<h4 id="data-and-options-25">Data and Options</h4>
<ul>
<li>The data field input is provided in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a> starting with the mandatory <em>(01)</em> and <em>(8200)</em> Application Identifiers.</li>
<li>Note that it is not necessary to specify <em>FNC1</em> characters since the encoder will insert these automatically where necessary.</li>
<li>The <strong>eclevel</strong> option is used to specify the error correction level:
<ul>
<li><code>eclevel=L</code> - Low</li>
<li><code>eclevel=M</code> - Medium (default)</li>
<li><code>eclevel=Q</code> - Quality</li>
<li><code>eclevel=H</code> - High</li>
</ul></li>
<li>The <strong>version</strong> option is used to specify the size of the symbol, 1 to 40.</li>
<li>If the <strong>version</strong> is unspecified the encoder will default to creating a symbol that is the minimum size to represent the given data at the selected error correction level.</li>
</ul>
<h4 id="example-3">Example</h4>
<pre><code>Data:    (01)03453120000011(8200)http://www.abc.net
Options: 
Encoder: gs1qrcode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAABCCAMAAADUivDaAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAFhSURBVFjDvZULDsIwDEO3+1+aIRiNn7MJtYZKsF/3SGInbJus/VjP79f563qs8952tyYR3HLeOZ8SrOgcom6+usMEt/ruDxDjukvxPwgGPsrnsmcRNVz91q2679IXUwh16nef2x6ZQOxYNVwK2+0/7gcQ3madnFVqnqUQbGmaiUfabR3hTFrH7YUyRxB9m3MIVjNX0Rs/TiBobhpJj904TiHURJ6aN7hJv4jQcmnALnXX3wkEZWShNPQqJsbPEqKWSscNr5ji56ejiK6YnbwVnEO4272cWm7dl0CoqPoCBw7/FltfLCN4rk2mzc8GWEXsWCNst72na123gLgbON0eFTqHoI2uUvT2zyBcJH1BX/S2TyA8WG10LWWbSADB0PyBm9r/ItYRmkQ38PW3dG8OMY5qcIbvkpbpGUb48KlJsQ3ePfIjRLVZL7OM3gCConYF1UKjHQIIF4pN5KW8EXsG8QDB+AiVWQs0TQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMDozMDoyNyswMDowMJOEb3MAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjA6MzA6MjcrMDA6MDDi2dfPAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<pre><code>Data:    (01)03453120000011(8200)http://abc.net(10)XYZ(410)9501101020917
Options: 
Encoder: gs1qrcode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAMAAADWZboaAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEdSURBVEjHtZXbDsMgDEPL///0XtolvlAJTCNt7TYOSxM7XBfEuOO5r+vzaRqL6BgF1IJaWL/h2hStxbhNJdvvGnMU7aXpZfsSreJwF86irjR+09e+LqGorPfXq4YX0GFCzWBXBShKDLFqipfqPuoa4MRuBBKgs3LUI9QVDZKg3VTdXNwk8yABqkLTtqAQWsG2USyIF4KTY47yONPDgkd4mwSbKI4Pffc2SFFNCBuFQ6aZM0LdkGR7d7H8vw9QHC1cJrYDiXYb9a1gE6rlM5Rhb/Ye0/9dQAeFWk3Nf98FqCbD9uYhxEfMHtqTxeNBRSJCDFAUnLoJiwJ9PYRyiXgIgCmPoSj6vqW2MEN7ijzIUZBkwQDFVOaSNGNtF/0Bby0GvT690f4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMjA6MzE6MTcrMDA6MDDyyQOuAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDIwOjMxOjE3KzAwOjAwg5S7EgAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="gs1-128">GS1-128</h3>
<p><strong>GS1-128</strong> is an implementation of the <a href="#code-128">Code 128</a> barcode symbology which carries <a href="#gs1-application-identifier-standard-format">GS1 formatted</a> data, including a GTIN-14.</p>
<p>Also known as: UCC/EAN-128, EAN-128, UCC-128.</p>
<p>Variants:</p>
<ul>
<li><a href="#gs1-composite-symbols">GS1-128 Composite</a> is a variant of GS1-128 that should be used when a CC-A, CC-B or CC-C GS1 composite 2D component is required.</li>
<li><a href="#ean-14">EAN-14</a> is a variant of GS1-128 that should be used when encoding a fourteen-digit GTIN.</li>
<li><a href="#sscc-18">SSCC-18</a> is a variant of GS1-128 that should be used when encoding an eighteen-digit SSCC.</li>
</ul>
<p>Standards: ISO/IEC 15417, ANSI/AIM BC4-1999 ISS, BS EN 799, GS1 General Specifications.</p>
<h4 id="data-and-options-26">Data and Options</h4>
<ul>
<li>The data field input is provided in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a>.</li>
<li>Note that it is not necessary to specify <em>FNC1</em> characters since the encoder will insert these automatically where necessary.</li>
<li><em>Deprecated: For internal use.</em> The <strong>linkagea</strong> option specifies that the symbol includes a <em>CC-A</em> or <em>CC-B</em> GS1 composite 2D component.</li>
<li><em>Deprecated: For internal use.</em> The <strong>linkagec</strong> option specifies that the symbol includes a <em>CC-C</em> GS1 composite 2D component.</li>
</ul>
<h4 id="examples-20">Examples</h4>
<p>GTIN <em>95012345678903</em>; Weight <em>0.123kg</em>:</p>
<pre><code>Data:    (01)95012345678903(3103)000123
Options: includetext
Encoder: gs1-128
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL0AAAAtCAMAAADMb5pBAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7u3d3dqqqqiIiImZmZu7u7d3d3zMzMVVVVREREZmZm7J/2EwAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAHQSURBVGje7VRJcsQgDEQya+L/vzegBQtwckjllJLLI+NutdTD4hACBIAQOIwXivTKD8VhQfm5KigJrFqlDEw1vKLmt7eYYxVIW3fv7t29u3f37t7du3t37+7dvbt39+7e3bt7d+/u3b27d/fu3t27e3f/X9xrT7rQvggkQCDWZo6Ii5yG13xHnBUCWoRz8VGeLB5xz1ycXxEgplx6rD1AvAba8kBqHZBlU8wjnyLgx8zpREc+a707S1quIFrO515cgXsZlvsKYuPZ17ivg6MbSlFAEBoubFGQZGW+liblMiFVVaKVtPq0pGoLa/ou2rOvcX9zy7K6zziIlFPcWGg0rm2MBiQ5MTb9FzHGohVUW5v2kjFVW9gKE7Hx7LvP/em+L3/SiV/YxkuHNDFSeKxS41kcIbWWtYJoKV9LY9rcM/Kze9N3n/tl59zmb5k9wKwUIaSUlDUn082Jke5FK/Ge2m3nJCW/2zm27z73fD7yfWd13WLqx7vyWXnYxucy8+m57qo52I/VkDWa9IFwBdHKaaN1pjH3Wtj6fmpf+hr3JcLyzeIFQPoCwEW4/aKBwZdxexDKlwqslRzqZbWGlV2IuMe3vsu33l6H4i8v/BV1Xl/G+BuVNsr6TgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxNTowNTo1NyswMDowMIfEXecAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTU6MDU6NTcrMDA6MDD2meVbAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<p>GTIN <em>0061414199996</em>; Expiration date <em>1st Jan 2010</em>; Batch <em>123ABC</em>; Serial <em>1234567890</em>:</p>
<pre><code>Data:    (01)0061414199996(17)100101(10)123ABC(21)1234567890
Options: includetext
Encoder: gs1-128
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUwAAAAtCAMAAADyb6ImAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7u3d3dqqqqiIiImZmZu7u7d3d3VVVVzMzMREREZmZmrqRKPAAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAALZSURBVGje7VbbstsgDESYW6n//3sLksAC3JPTaWf6sh5HEUKry0Y2cc6RI3JORF+w5OX2JR8iIjGRO1QFu1U1MInHizOuquSmOp2cqBp3qkS/qUShTyFLOU4zPtGXCG4u3Fr3gNMo4wGIAWSCTJAJMkEmyASZIBNkgkyQCTJBJsgEmSATZIJMkAkyQSbIBJkgE2SCTJAJMkEmyASZIBNkgkyQCTJBJsgEmSATZIJMkAkyQeafkKmp58ULT/vlh3T0INyuui3OAvPicG0J6YjluVh/ZDdxidZ8E+1FPQDujOa2YJy3SX8muuaCd524LiwdRPbrCkQhptxkaYLC1a1qYUkxhLFL/kd+02vqnqcUrGZhz5+l3DOLZDS5FotkMVi1G2wMqe+yzKE258RfNcZ0KVZ9bHcHVnoppcyatU7Ti7KxD6K9SkfzTTkPg1rkzpUdZTfy16HH39yKlaBZa0nDcGKtZfiXzdNi81hxG7oZyXfPrGb1Md29YfNcjpp7nUUDmgq/IvMWVF7TiUVl6L+17Nb8EGj15HugFylYzjLI4WJNUzaXtQz/e/O02F5F10ufxtpyts1aKHjT3fDZyVyw3EtMMTw19zpDCHn2Itk/TebXZLZkZmbsNJopDSm+ScUukxm3pj6RWTbPhZDKbxEexZKzSp9sd+pzkmmw0RQ3au4itl9o9PINMu/9sbqJ1sFO8mAqc/FVJ/vIGKnYZTLjMzLfeszvzdNilY9RZ9EnmkfOq6v6mO5OrPay1MwTwTeZh/3jZMqrNd33fJvZQ8G3N/Xcve7yptcQ/ZsUrM6/oGp95p8tNpe1qL/B6hHwYKscE6kfIk3xd8zNUnwbpdzTd9fhY7o7sNpLYV1r5jrbARRGL984gDKfZc+pr+MgFrVX+nT5610ObA6rf7ZlLblo1y2W7XlrqVNx/LfT9F/mPbHX0S9n1GB+z3L+5fNfLv/V9TdZ/hf24/ULteAzQQX37RsAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTU6MDY6MzMrMDA6MDBe08twAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE1OjA2OjMzKzAwOjAwL45zzAAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="ean-14">EAN-14</h3>
<p><strong>EAN-14</strong> is an implementation of the <a href="#gs1-128">GS1-128</a> barcode symbology with <em>AI (01)</em> that is typically used to encode a GTIN-14.</p>
<p>Also known as: UCC-14.</p>
<p>Standards: ISO/IEC 15417, ANSI/AIM BC4-1999 ISS, BS EN 799, GS1 General Specifications.</p>
<h4 id="data-and-options-27">Data and Options</h4>
<ul>
<li>The data field input is provided in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a> and must be a solitary <em>AI (01)</em> with thirteen or fourteen digits of a GTIN, i.e. <code>(01)...</code>.</li>
<li>Arbitrary spacing may be placed between the digits to format the human readable text without interfering with the encoded data.</li>
<li>If thirteen digits of primary data are supplied then the check digit is calculated automatically. Otherwise the provided check digit will be verified.</li>
</ul>
<h4 id="examples-21">Examples</h4>
<p>Identical symbols, input provided with and without a check digit:</p>
<pre><code>Data:    (01)04601234567893
Options: includetext
Encoder: ean14
</code></pre>
<pre><code>Data:    (01)0460123456789
Options: includetext
Encoder: ean14
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIYAAABRCAMAAAAgnC40AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7u3d3dqqqqiIiImZmZu7u7d3d3VVVVREREZmZmzMzMBVSrXgAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAGASURBVGje7ZTBdsQgCEXFINqG///eBlAnmrbTTXfPk+MoXvRGzaSUKBGlFJV1vPZu/PjTI2lCMxCj3o1+dLxFMXmfoC9Fg+0JMSc0oAENaEADGtCABjSgAQ1oQAMa0IAGNKABDWhAAxrQgAY0oAENaEADGtCABjSgAQ1oQONvGhTzzOKdvAbSGomJ8w3IkZVvU/TmMTV8NAWatwVWBSsHE3GRetXtqogPi0aE8ofVhTemsFjE62Baa5P8bO28RsV49bqT+8vfS7Nsf6jWERiRYqGqtDG1U5FcZzfIq4hH2swawM8aZ2TVVSMiWi0kzLox14i1mw6mSOFBhg4zW272BZx8uxs/aRQPXVOUjdHY41wGE9sVZN9IVbHTlTLIt7uxHMr5OoJai7iArIyOk55M6AcZIPszj+OdRpsXUs5TRlq/osfZ7E1YFkbjEkpcPGeat4MkVd8GiyiXPMnfNKrf9tcH1bd4+cT0EfFy5Ef7dgWcz8eD/F5j+4egx2L/Ur4AFXgc79CGejEAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTk6MDI6MzYrMDA6MDCfuv1WAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE5OjAyOjM2KzAwOjAw7udF6gAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="itf-14">ITF-14</h3>
<p><strong>ITF-14</strong> is an implementation of the <a href="#interleaved-2-of-5">Interleaved 2 of 5</a> barcode symbology that is typically used to encode a GTIN-14, GTIN-13 or GTIN-12.</p>
<p>Also known as: UPC Shipping Container Symbol, SCS, UPC Case Code.</p>
<p>Standards: ISO/IEC 16390, ANSI/AIM BC2-1995 USS, BS EN 801, GS1 General Specifications.</p>
<h4 id="data-and-options-28">Data and Options</h4>
<ul>
<li>The data consists of either thirteen or fourteen digits.</li>
<li>Arbitrary spacing may be placed between the digits to format the human readable text without interfering with the encoded data.</li>
<li>If thirteen digits are supplied then the check digit is calculated automatically. Otherwise the provided check digit will be verified.</li>
</ul>
<h4 id="examples-22">Examples</h4>
<p>Identical symbols, input provided with and without a check digit:</p>
<pre><code>Data:    04601234567893
Options: includetext
Encoder: itf14
</code></pre>
<pre><code>Data:    0460123456789
Options: includetext
Encoder: itf14
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKkAAAAyCAMAAAAQqgudAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7u3d3dqqqqiIiImZmZu7u7VVVVd3d3REREZmZmzMzMu23GBgAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAFNSURBVGje7ZTtdoMgDIYBQ1hm7v965weJgLLT7te286Y9LU3yxEfRhoBA/JGIbQR7Hfn9M5zZ4Lnrt/VfvU22oYN33om2HkIzuXGCKUxhClOYwhSmMIUpTGEKU5jCFKYwhSlMYQpTmP4XUwTit0d8jvSQW2Ylz6QU57GMVBr5b/GJKWUulf6oi0zUl0i8wrVkC6dEZMA/RdazmesctcWFv2Gaj/exKueYordSrcTtSwyUnvK841uwlWQY2PS/bMrH8fcTLvWYTKR9yU33rpoR7anMmXrcpYmoTk5x7fEfmWbz2Ybkman6pqXcU9Gul+PXZqmeF3e7D3KPv2PqO1JKZhPkYbPMRqkDWyrahjruNB3vtic2t8HLptcTtaxST5e4L/G6Hhn1h4T9kTBKLON4VLUrWUtKOQ34G6ZPfxg6L1ksaZ653YI2Jy1zvIkvVJ8WxfgScd8AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMjE6Mzc6MDgrMDA6MDAYo9obAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDIxOjM3OjA4KzAwOjAwaf5ipwAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="sscc-18">SSCC-18</h3>
<p><strong>SSCC-18</strong> is an implementation of the <a href="#gs1-128">GS1-128</a> barcode symbology with <em>AI (00)</em> that is typically used to encode an eighteen-digit shipping container serial number.</p>
<p>Also known as: EAN-18, NVE.</p>
<p>Standards: ISO/IEC 15417, ANSI/AIM BC4-1999 ISS, BS EN 799, GS1 General Specifications.</p>
<h4 id="data-and-options-29">Data and Options</h4>
<ul>
<li>The data field input is provided in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a> and must be a solitary <em>AI (00)</em> with seventeen or eighteen digits of a Serial Shipping Container Code, i.e. <code>(00)...</code>.</li>
<li>Arbitrary spacing may be placed between the digits to format the human readable text without interfering with the encoded data.</li>
<li>If seventeen digits of primary data are supplied then the check digit is calculated automatically. Otherwise the provided check digit will be verified.</li>
</ul>
<h4 id="example-4">Example</h4>
<p>Identical symbols, input provided with and without a check digit:</p>
<pre><code>Data:    (00)006141411234567890
Options: includetext
Encoder: sscc18
</code></pre>
<pre><code>Data:    (00)00614141123456789
Options: includetext
Encoder: sscc18
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJwAAABRCAMAAAAQED8VAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7u3d3dqqqqiIiImZmZu7u7d3d3VVVVREREZmZmzMzMBVSrXgAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAGbSURBVGje7ZPdesMgCIbF4M+m93+9C6CGJG3X7mBHn4+jCPjxzmgIgQJRCGZkoVbn/HOuFBNZiMLNHWXhnAtrEeb2obtahVU7NlgWcIADHOAABzjAAQ5wgAMc4AAHOMABDnCAAxzgAAc4wAEOcIADHOAABzjAAQ5wgAMc4AAHOMABDnCAA9xf4IbwGrKI6kUXPSKS38JRe3LDWceWMa7Ayh2L6Jr5jjcw6ctEnHJZdpOoj1BiqalF5b7KI99s4iyVai1ba10K37W2PZtFs2enfwb0o8peNzVwipSuhUV1kv7cfXPHbhMtazkUiLJG6qXjc7hme8q0pucjmbnP9r0cQN4fdo+JX/vMppx4KSgkM4tmlMaj4+uTew23t0qzfaIDyPvDdrb7lFZWz2YoqEm9Z7kHOb0B166ftV0/a9Y5SdJDf5wlD9G0svrPDgWVZ53kPu4vJ3e6/vX6IOJ+z3f11qTB1uojX223K5/tQWi2qm8K1LsemUQ6p/jGgyj6suxhx+PyuMguRR+NLd58p6CacXNdnsNRfLn83/ED9rsilKHRG3cAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMjE6NDc6MDYrMDA6MDBhp7TFAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDIxOjQ3OjA2KzAwOjAwEPoMeQAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h2 id="gs1-databar-family">GS1 DataBar Family</h2>
<h3 id="gs1-databar-omnidirectional">GS1 DataBar Omnidirectional</h3>
<p><strong>GS1 DataBar Omnidirectional</strong> is a fixed-length, linear barcode symbology that can be used to encode a GTIN-14 for use at point of sale.</p>
<p>Also known as: RSS-14</p>
<p>Variants:</p>
<ul>
<li><a href="#gs1-databar-stacked-omnidirectional">GS1 DataBar Stacked Omnidirectional</a> is a variant of GS1 DataBar Omnidirectional for use where a taller, narrower symbol is required.</li>
<li><a href="#gs1-composite-symbols">GS1 DataBar Omnidirectional Composite</a> is a variant of GS1 DataBar Omnidirectional that should be used when a CC-A or CC-B GS1 composite 2D component is required.</li>
</ul>
<p>Standards: ISO/IEC 24724, ITS Reduced Space Symbology (RSS), AIM ISS - Reduced Space Symbology (RSS), GS1 General Specifications.</p>
<h4 id="data-and-options-30">Data and Options</h4>
<ul>
<li>The data field input is provided in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a> and must be a solitary <em>AI (01)</em> with thirteen or fourteen digits of a GTIN, i.e. <code>(01)...</code>.</li>
<li>If thirteen digits of <em>AI (01)</em> data are supplied then the check digit is calculated automatically, otherwise the provided check digit will be verified.</li>
<li><em>Deprecated: For internal use.</em> The <strong>linkage</strong> option signifies the presence of a GS1 composite 2D component.</li>
</ul>
<h4 id="examples-23">Examples</h4>
<p>Identical symbols, input provided with and without a check digit:</p>
<pre><code>Data:    (01)24012345678905
Options: 
Encoder: databaromni
</code></pre>
<pre><code>Data:    (01)2401234567890
Options: 
Encoder: databaromni
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAAAhCAMAAACIuod2AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAA/SURBVEjH7cyBCQAgDAPB7/5Lq7EFd/ClSAjtQVH7kSkgHylP1zlrkJn6DX3LFH14o76+vr6+vr6+vr7+F/4CfZ8FjFvNXfcAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTQ6NTI6NTgrMDA6MDA/kUOwAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE0OjUyOjU4KzAwOjAwTsz7DAAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="gs1-databar-stacked-omnidirectional">GS1 DataBar Stacked Omnidirectional</h3>
<p><strong>GS1 DataBar Stacked Omnidirectional</strong> is a fixed-length, stacked linear barcode symbology that can be used to encode a GTIN-14 for use a point of sale.</p>
<p>Also known as: RSS-14 Stacked Omnidirectional.</p>
<p>Variants:</p>
<ul>
<li><a href="#gs1-databar-omnidirectional">GS1 DataBar Omnidirectional</a> is a variant of GS1 DataBar Stacked Omnidirectional for use where a shorter, wider symbol is required.</li>
<li><a href="#gs1-composite-symbols">GS1 DataBar Stacked Omnidirectional Composite</a> is a variant of GS1 DataBar Stacked Omnidirectional that should be used when a CC-A or CC-B <a href="#gs1-composite-symbols">GS1 composite</a> 2D component is required.</li>
</ul>
<p>Standards: ISO/IEC 24724, ITS Reduced Space Symbology (RSS), AIM ISS - Reduced Space Symbology (RSS), GS1 General Specifications.</p>
<h4 id="data-and-options-31">Data and Options</h4>
<ul>
<li>The data field input is provided in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a> and must be a solitary <em>AI (01)</em> with thirteen or fourteen digits of a GTIN, i.e. <code>(01)...</code>.</li>
<li>If thirteen digits of <em>AI (01)</em> data are supplied then the check digit is calculated automatically, otherwise the provided check digit will be verified.</li>
<li><em>Deprecated: For internal use.</em> The <strong>linkage</strong> option signifies the presence of a GS1 composite 2D component.</li>
</ul>
<h4 id="examples-24">Examples</h4>
<p>Identical symbols, input provided with and without a check digit:</p>
<pre><code>Data:    (01)24012345678905
Options: 
Encoder: databarstackedomni
</code></pre>
<pre><code>Data:    (01)2401234567890
Options: 
Encoder: databarstackedomni
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAABFCAMAAAA/xkX6AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAABfSURBVEjH7Y9JEsAgCATp/39aM0JBbjnE24BlsUwrRLB9GzoB6ELFp5axZByxESNGjBgxcgM5OpRms8T1jhpStPHZB1FpB1Fzj8JbTm3AWKUHzsnI34wYMWLEiJG/kQW7cAcuqEYqAwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxNDozNTo1NCswMDowMPJY+P4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTQ6MzU6NTQrMDA6MDCDBUBCAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="gs1-databar-expanded">GS1 DataBar Expanded</h3>
<p><strong>GS1 DataBar Expanded</strong> is a variable-length, linear barcode symbology that can be used to encode a GTIN-14 alongside a number of other application identifiers for use at point of sale.</p>
<p>Also known as: RSS Expanded.</p>
<p>Variants:</p>
<ul>
<li><a href="#gs1-databar-expanded-stacked">GS1 DataBar Expanded Stacked</a> is a variant of GS1 DataBar Expanded for use where a taller, narrower symbol is required.</li>
<li><a href="#gs1-composite-symbols">GS1 DataBar Expanded Composite</a> is a variant of GS1 DataBar Expanded that should be used when a CC-A or CC-B GS1 composite 2D component is required.</li>
<li><a href="#gs1-north-american-coupon-code">GS1 North American Coupon Code</a> is an applicaiton of GS1 DataBar Expanded for use with a paperless coupon system.</li>
</ul>
<p>Standards: ISO/IEC 24724, ITS Reduced Space Symbology (RSS), AIM ISS - Reduced Space Symbology (RSS), GS1 General Specifications.</p>
<h4 id="data-and-options-32">Data and Options</h4>
<ul>
<li>The data field input is provided in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a>.</li>
<li>Note that it is not necessary to specify <em>FNC1</em> characters since the encoder will insert these automatically where necessary.</li>
<li>If the data contains a number of application identifiers matching any of the specifications below then they should be provided in this given order for maximum encoding efficiency:
<ul>
<li><code>(01)9...(3103)...</code></li>
<li><code>(01)9...(3202)...</code></li>
<li><code>(01)9...(3203)...</code></li>
<li><code>(01)9...(310x/320x)...(11/13/15/17)...</code></li>
<li><code>(01)9...(310x/320x)...</code></li>
<li><code>(01)9...(392x)...</code></li>
<li><code>(01)9...(393x)...</code></li>
<li><code>(01)...</code></li>
</ul></li>
<li><em>Deprecated: For internal use.</em> The <strong>linkage</strong> option signifies the presence of a GS1 composite 2D component.</li>
</ul>
<h4 id="examples-25">Examples</h4>
<pre><code>Data:    (01)95012345678903(3103)000123
Options: 
Encoder: databarexpanded
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJUAAAAiCAMAAABhs2uwAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABUSURBVFjD7c5LDgAgCEPB9v6X9lOIbN0/EyIEwZEsO7HPTVXHqVypX/sV51aPZsl8o47xqlvjh2zqDZlBhQoVKlSoUKFChQoVKlSoUKFChQrVj2oBRxcJ999e1BoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTQ6MzQ6MDArMDA6MDChNbm3AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE0OjM0OjAwKzAwOjAw0GgBCwAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="gs1-databar-expanded-stacked">GS1 DataBar Expanded Stacked</h3>
<p><strong>GS1 DataBar Expanded Stacked</strong> is a variable-length, stacked-linear barcode symbology that can be used to encode a GTIN-14 alongside a number of other application identifiers for use at point of sale.</p>
<p>Also known as: RSS Expanded Stacked.</p>
<p>Variants:</p>
<ul>
<li><a href="#gs1-databar-expanded">GS1 DataBar Expanded</a> is a variant of GS1 DataBar Expanded Stacked for use where a shorter, wider symbol is required.</li>
<li><a href="#gs1-composite-symbols">GS1 DataBar Expanded Stacked Composite</a> is a variant of GS1 DataBar Expanded Stacked that should be used when a CC-A or CC-B GS1 composite 2D component is required.</li>
<li><a href="#gs1-north-american-coupon-code">GS1 North American Coupon Code</a> is an applicaiton of GS1 DataBar Expanded for use with a paperless coupon system.</li>
</ul>
<p>Standards: ISO/IEC 24724, ITS Reduced Space Symbology (RSS), AIM ISS - Reduced Space Symbology (RSS), GS1 General Specifications.</p>
<h4 id="data-and-options-33">Data and Options</h4>
<ul>
<li>The data field input is provided in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a>.</li>
<li>Note that it is not necessary to specify <em>FNC1</em> characters since the encoder will insert these automatically where necessary.</li>
<li>If the data contains a number of application identifiers matching any of the specifications below then they should be provided in this given order for maximum encoding efficiency:
<ul>
<li><code>(01)9...(3103)...</code></li>
<li><code>(01)9...(3202)...</code></li>
<li><code>(01)9...(3203)...</code></li>
<li><code>(01)9...(310x/320x)...(11/13/15/17)...</code></li>
<li><code>(01)9...(310x/320x)...</code></li>
<li><code>(01)9...(392x)...</code></li>
<li><code>(01)9...(393x)...</code></li>
<li><code>(01)...</code></li>
</ul></li>
<li>The <strong>segments</strong> option is used to specify the maximum number of segments per row which must be an even number. The default is <em>4</em>.</li>
<li><em>Deprecated: For internal use.</em> The <strong>linkage</strong> option signifies the presence of a GS1 composite 2D component.</li>
</ul>
<h4 id="examples-26">Examples</h4>
<pre><code>Data:    (01)95012345678903(3103)000123
Options: segments=4
Encoder: databarexpandedstacked
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAABHCAMAAAApxnnAAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACCSURBVFjD7dDLDoAwCETR4f9/2gc4w1YTd7emEVLsQaRSVe9z3aFmVWc1YeU4yfXW82lfsmuUjYKCgoKCgoKCgoKCgmJlJU9Ys+5Q7kA5TuKK7meacc1ctgr+emylodVcfqabzhhfL0/Vw5UnpPByP3ukKCgoKCgoKCgoKCgoKJ+UA6UpEX2gfj58AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIwOjQ1OjU1KzAwOjAwwcyphAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMDo0NTo1NSswMDowMLCRETgAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="gs1-databar-truncated">GS1 DataBar Truncated</h3>
<p><strong>GS1 DataBar Truncated</strong> is a fixed-length, linear barcode symbology that can be used to encode a GTIN-14 for in-house applications.</p>
<p>Also known as: RSS-14 Truncated.</p>
<p>Variants:</p>
<ul>
<li><a href="#gs1-databar-stacked">GS1 DataBar Stacked</a> is a variant of GS1 DataBar Truncated for use where a taller, narrower symbol is required.</li>
<li><a href="#gs1-composite-symbols">GS1 DataBar Truncated Composite</a> is a variant of GS1 DataBar Truncated that should be used when a CC-A or CC-B GS1 composite 2D component is required.</li>
</ul>
<p>Standards: ISO/IEC 24724, ITS Reduced Space Symbology (RSS), AIM ISS - Reduced Space Symbology (RSS), GS1 General Specifications.</p>
<h4 id="data-and-options-34">Data and Options</h4>
<ul>
<li>The data field input is provided in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a> and must be a solitary <em>AI (01)</em> with 13 or 14 digits of a GTIN, i.e. <code>(01)...</code>.</li>
<li>If thirteen digits of <em>AI (01)</em> data are supplied then the check digit is calculated automatically, otherwise the provided check digit will be verified.</li>
<li><em>Deprecated: For internal use.</em> The <strong>linkage</strong> option signifies the presence of a GS1 composite 2D component.</li>
</ul>
<h4 id="examples-27">Examples</h4>
<p>Identical symbols, input provided with and without a check digit:</p>
<pre><code>Data:    (01)24012345678905
Options: 
Encoder: databartruncated
</code></pre>
<pre><code>Data:    (01)2401234567890
Options: 
Encoder: databartruncated
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAAANCAMAAAD41EI7AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAA3SURBVDjL7YxBCgAgDMPS/39arR34Ay8dZZSwBYT24AjwwvCwdJ+BM/gt+WVAHm+tv/766//gX2WYAjAADBkNAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDE0OjM2OjQ2KzAwOjAwQlpSSgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxNDozNjo0NiswMDowMDMH6vYAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="gs1-databar-stacked">GS1 DataBar Stacked</h3>
<p><strong>GS1 DataBar Stacked</strong> is a fixed-length, stacked linear barcode symbology that can be used to encode a GTIN-14 for in-house applications.</p>
<p>Also known as: RSS-14 Stacked.</p>
<p>Variants:</p>
<ul>
<li><a href="#gs1-databar-truncated">GS1 DataBar Truncated</a> is a variant of GS1 DataBar Stacked for use where a shorter, wider symbol is required.</li>
<li><a href="#gs1-composite-symbols">GS1 DataBar Stacked Composite</a> is a variant of GS1 DataBar Stacked that should be used when a CC-A or CC-B GS1 composite 2D component is required.</li>
</ul>
<p>Standards: ISO/IEC 24724, ITS Reduced Space Symbology (RSS), AIM ISS - Reduced Space Symbology (RSS), GS1 General Specifications.</p>
<h4 id="data-and-options-35">Data and Options</h4>
<ul>
<li>The data field input is provided in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a> and must be a solitary <em>AI (01)</em> with thirteen or fourteen digits of a GTIN, i.e. <code>(01)...</code>.</li>
<li>If thirteen digits of <em>AI (01)</em> data are supplied then the check digit is calculated automatically, otherwise the provided check digit will be verified.</li>
<li><em>Deprecated: For internal use.</em> The <strong>linkage</strong> option signifies the presence of a GS1 composite 2D component.</li>
</ul>
<h4 id="examples-28">Examples</h4>
<p>Identical symbols, input provided with and without a check digit:</p>
<pre><code>Data:    (01)24012345678905
Options: 
Encoder: databarstacked
</code></pre>
<pre><code>Data:    (01)2401234567890
Options: 
Encoder: databarstacked
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAANCAMAAADczc37AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAABBSURBVCjP7Y1BDgAgCMPo/z8tjhH16NUIhJBlHRFkZ6EJQAuJU/MtG2V+CbFeDJ1g7JDt3u2Vx/ZEFAvvlI9cIQOhRgFj617cogAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxNDozNDo1OCswMDowMNo6+bQAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTQ6MzQ6NTgrMDA6MDCrZ0EIAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="gs1-databar-limited">GS1 DataBar Limited</h3>
<p><strong>GS1 DataBar Limited</strong> is fixed-length, linear barcode symbology that can be used to encode a GTIN-14 beginning with <em>0</em> or <em>1</em> for in-house applications.</p>
<p>Also known as: RSS Limited.</p>
<p>Variants:</p>
<ul>
<li><a href="#gs1-composite-symbols">GS1 DataBar Limited Composite</a> is a variant of GS1 DataBar Limited that should be used when a CC-A or CC-B GS1 composite 2D component is required.</li>
</ul>
<p>Standards: ISO/IEC 24724, ITS Reduced Space Symbology (RSS), AIM ISS - Reduced Space Symbology (RSS), GS1 General Specifications.</p>
<h4 id="data-and-options-36">Data and Options</h4>
<ul>
<li>The data field input is provided in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a> and must be a solitary <em>AI (01)</em> with thirteen or fourteen digits of a GTIN starting with <em>0</em> or <em>1</em>, i.e. <code>(01)0...</code> or <code>(01)1...</code>.</li>
<li>If thirteen digits of <em>AI (01)</em> data are supplied then the check digit is calculated automatically, otherwise the provided check digit will be verified.</li>
<li><em>Deprecated: For internal use.</em> The <strong>linkage</strong> option signifies the presence of a GS1 composite 2D component.</li>
</ul>
<h4 id="examples-29">Examples</h4>
<p>Identical symbols, input provided with and without a check digit:</p>
<pre><code>Data:    (01)15012345678907
Options: 
Encoder: databarlimited
</code></pre>
<pre><code>Data:    (01)1501234567890
Options: 
Encoder: databarlimited
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAAKCAMAAADPYYMsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAtSURBVCjPY2BgZGRkYIBgEAFCjGA+hGKECsFIRogAVC0DXDMDw6hJoyYNSpMADNgBaVdngJ4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTQ6NTE6NTArMDA6MDDnSbbUAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE0OjUxOjUwKzAwOjAwlhQOaAAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="gs1-north-american-coupon-code">GS1 North American Coupon Code</h3>
<p><strong>GS1 North American Coupon Code</strong> is an implementation of the <a href="#gs1-databar-expanded">GS1 DataBar Expanded</a> barcode symbology with AI (8110) that is used as a paperless coupon system at point of sale.</p>
<p>Also known as: GS1 DataBar Coupon, U.S. Coupon Code.</p>
<p>Standards: North American Coupon Application Guideline Using GS1 DataBar Expanded Symbols, ISO/IEC 24724, GS1 General Specifications.</p>
<h4 id="data-and-options-37">Data and Options</h4>
<ul>
<li>The data field input is provided in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a> and must be a solitary AI (8110).</li>
<li>The <strong>segments</strong> option is used to specify the maximum number of segments per row which must be an even number. The default is <em>4</em>.</li>
</ul>
<h4 id="examples-30">Examples</h4>
<pre><code>Data:    (8110)106141416543213500110000310123196000
Options: includetext segments=8
Encoder: gs1northamericancoupon
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABRCAMAAACg7xknAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAALVBMVEX////d3d2ZmZnu7u7MzMy7u7uqqqp2dnZDQ0MyMjJUVFSIiIghISFlZWUAAABYNcCEAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+IEEBc4J5k9XRMAAAHUSURBVGje7ZTrbsMgDIUNBEySlvd/3JmLgbBJ034l1Y5bIcc52P7ALZGxhsjZjYi8eEThB68KmNnU8JY3mWnT/WaijcbFED353UuAI33zqAhMLCAS9offjbyKQQX3Gwey52nJGeKX9LTl9hePqAg8e1fDchUcZPGsgvuN5SaYYzykR7kVd5C0f/WyKgvOnfethd+76N3hVXC/VRBLgUtP79Pv2+LJTTSBLC1MfJItDE8BkaE57RkUxDK/7OJlVRYEI0sJc/bCuyR4CoiLHJ2ToTHa0xio4RWBF6kp4ZAfjz1G+xwQ+WPqy28q11XuMd3DnmtJv5SSfJOu2SmvU5V1h6pA9TWk8hat+XqgrCNfas9LhZ64pO1la7rR04+VEkAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEA+FqSHEvWMzRqoJlBMSr3EtSh1gJpvKj1gUtetFXriy+G00qOn6RTaZqK540/+zCBJZ2B6M2nHyfbb0cMbV6InNg9j6kHd3K9y7mSa6LmxP5lOQ+tU86Z0HRid9dFiYxlzMP90Ou6gX0otx7gcH0AAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCED+CcgX3jFJvzm94wUAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDQtMTZUMjM6NTY6MzkrMDE6MDB9I4e5AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTA0LTE2VDIzOjU2OjM5KzAxOjAwDH4/BQAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE4LTAyLTA03hEr7AAAADF0RVh0U291cmNlAGh0dHBzOi8vdGhlLWJ1cnRvbnMueHl6L2JhcmNvZGUtZ2VuZXJhdG9yL0v1MBUAAAAASUVORK5CYII=" /></p>
<h2 id="postal-symbols">Postal Symbols</h2>
<h3 id="australia-post-4-state-customer-code">Australia Post 4 State Customer Code</h3>
<p>The <strong>Australia Post 4 State Customer Code</strong> is a barcode used by the Australian Postal Service to encode the data on letter mail.</p>
<h4 id="data-and-options-38">Data and Options</h4>
<ul>
<li>The first two characters of the data field are digits used to specify the manditory FCC type of the symbols, either <code>11</code>, <code>45</code>, <code>59</code> or <code>67</code>.</li>
<li>The next eight characters are digits that specify the manditory DPID.</li>
<li>The number of remaining characters varies according to the given FCC code and these specify the contents of the customer information field in one of two alphabets:
<ul>
<li>The <strong>custinfoenc</strong> option should be supplied as <code>custinfoenc=numeric</code> if the customer information field is to be encoded using the numeric alphabet which can contain the digits 0-9.</li>
<li>Otherwise the customer information field is encoded using the default character encoding, <code>custinfoenc=character</code>, which permits any of the following characters:
<ul>
<li>Upper case letters <code>A-Z</code></li>
<li>Lower case letters <code>a-z</code></li>
<li>Digits <code>0-9</code></li>
<li>Symbols <code>space</code> and <code>#</code></li>
</ul></li>
</ul></li>
</ul>
<h4 id="examples-31">Examples</h4>
<p>FCC 62 symbol with character customer data:</p>
<pre><code>Data:    6279438541AaaB 155
Options: custinfoenc=character
Encoder: auspost
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAAAVCAMAAAAaY3DPAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7uREREd3d3ZmZmzMzMmZmZu7u7VVVVqqqq3d3diIiIhAinKgAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAFjSURBVFjD7VXZcsMgDAQqkCr4/+8tZzjt5iF03Bk0hCxeEFrEIYQsJmKpjeabuGPFAvX9bh2Ja7Qy8aq7ObugXj2OuCPuiPt7ceIuzl/RcwcdcQ+I84ibxHUnu/LTjSBHVgx9Jvfv3BdimOItuxg0xlXhEXfEPVDc2lTXULX+H7YW9wWgpTSIFPV8hz9mZF+nbwBQKU6Y2FzPY3FB54HVXYu2ifOGUrpYfEVl5lLir1KZd64MJjMhyM46axzLEW0UF4JCJX3+pKEUA4EJ+ePQcOi4Uok3BvOWZWIcEUgzB17EZXcd2igurjKjizDHoEIqvYTaI1OJB6KcG0LkEQV2Oq5E/YQD2iou7RIfVdXDsQxUihHLpgryaUCp+424HTvzQpwJR8VwWmurw3xYLpQgDjhlJFKodRCmpdJxTSyQA9sj8ncUjJlLAxt3LdonLpqyXdO2T4G9fRHsAt1adWc/+NT8ABuRFrjYbnHZAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDEyOjI3OjU0KzAwOjAwl8Yo3gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxMjoyNzo1NCswMDowMOabkGIAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<p>FCC 59 symbol with numeric customer data:</p>
<pre><code>Data:    593221132401234567
Options: custinfoenc=numeric
Encoder: auspost
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKoAAAAVCAMAAADhNIUQAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7u3d3dqqqqmZmZiIiId3d3u7u7VVVVREREZmZmzMzMS3wOJQAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAFDSURBVEjH7VSBbsUgCBQr6Fb//3tXAa300W1va5Ysr6ZBhTt6WmgIwEMnWcmjvjC7bXQHBAcAvs+khFO3HZzllnpL/U9Sg/+ub67+inRLfXWptnRNsTst5LbfsYXguIJH0kMzfdJPp8tb6qtKnUeMbHVzCrAhbxM9Mizwg+FLTQkTALHtU8plWAX0UHzjEGEZgE6aATn32OZ7z3m9QmrLC1DY9glK2S2YELGT+OkwJc0AdZSqGfASqSVzviq66iRSpSqAQ7WwE1ngOIuSGk4BhNSuGFOqRvIvbzW2C6pJXiqTvVUGSIjAkaokxtFgNdImnvr6CqktkVV6LID9LKUQwqEAOol9CgCpAdRPf41UbN1QpfJ1AlxX7FYAI7SsTYK0lQAGSdpKAFl7bGu5dpgnv//ZrS7xC54H8H5MBtc3z4qU8QEDyRJYJBlfZAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxMjoyNzowNSswMDowMHlRLQ4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTI6Mjc6MDUrMDA6MDAIDJWyAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="deutsche-post-identcode">Deutsche Post Identcode</h3>
<p><strong>Deutsche Post Identcode</strong> is an implementation of the <a href="#interleaved-2-of-5">Interleaved 2 of 5</a> barcode symbology that is used by German Post for mail routing.</p>
<p>Also known as: DHL Identcode.</p>
<h4 id="data-and-options-39">Data and Options</h4>
<ul>
<li>The data consists of a consecutive string of eleven or twelve digits consisting of:
<ul>
<li>Two-digit primary distribution centre identifier</li>
<li>Three-digit customer identifier</li>
<li>Six-digit mail piece identifier</li>
<li>One-digit check digit (may be omitted)</li>
</ul></li>
<li>If eleven digits are supplied then the check digit is calculated automatically. Otherwise the provided check digit will be verified.</li>
</ul>
<h4 id="example-5">Example</h4>
<p>Identical symbols, input provided with an without a check digit:</p>
<pre><code>Data:    563102430313
Options: includetext
Encoder: identcode
</code></pre>
<pre><code>Data:    56310243031
Options: includetext
Encoder: identcode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHUAAABQCAMAAAAQu8oLAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////3d3d7u7ud3d3u7u7iIiIqqqqmZmZVVVVzMzMREREZmZmIWP3aQAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAE3SURBVGje7ZPLooMgDESJIYFS//97L4ZXsLbbu5m0KiaTOaAYAtVfuM5kV6KRoZ7vtamY6nGEzWNTDcflutdABRVUUEEFFVRQQQUVVFBBBRVUUEEFFVRQQQUVVFBBBRVUUEEFFVRQ/4dKvUJ9FI55w47KtDS8qMS8PHhkvGfoPrN7DWvEGKVeNKWRSSnXcbJ00iwjr5YnfsnQdL1pfJf3cQvzVDtLoXtSbDL2byEtryKu0Wtm1838gapZ64xySosrsYz+bLARRa7DCk1j0TWua/N5pLbJ1rquBOsjtSQTN2PWG9V1bT7fqNE689oRNPv9EzZoTWueGtNPzQeVvlKjvXOuW6XevM9r7pbJ55m33VTeMV7l44xD0/RN47v6M/ixm+ho67NX0NZ6uM+FmR6jaZifuzbnHn+LhhgfWExW0AAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMToyNTowMiswMDowMHmoiqgAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjE6MjU6MDIrMDA6MDAI9TIUAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="deutsche-post-leitcode">Deutsche Post Leitcode</h3>
<p>The <strong>Deutsche Post Leitcode</strong> barcode symbology is an implementation of the <a href="#interleaved-2-of-5">Interleaved 2 of 5</a> barcode that is used by German Post for mail routing.</p>
<p>Also known as: DHL Leitcode.</p>
<h4 id="data-and-options-40">Data and Options</h4>
<ul>
<li>The data consists of a consecutive string of thirteen or fourteen digits consisting of:
<ul>
<li>Five-digit postal code</li>
<li>Three-digit street identifier</li>
<li>Three-digit house number</li>
<li>Two-digit product code</li>
<li>One-digit check digit (may be omitted)</li>
</ul></li>
<li>If thirteen digits are supplied then the check digit is calculated automatically. Otherwise the provided check digit will be verified.</li>
</ul>
<h4 id="examples-32">Examples</h4>
<p>Identical symbols, input provided with and without a check digit:</p>
<pre><code>Data:    21348075016401
Options: includetext
Encoder: leitcode
</code></pre>
<pre><code>Data:    2134807501640
Options: includetext
Encoder: leitcode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIcAAABQCAMAAAAEApavAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7uiIiIqqqqmZmZd3d3u7u7VVVVREREZmZmzMzM3d3dUR9rPAAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAFbSURBVGje7ZPbdgMhCEUHRW3G/P/3VmBExrRdzUuejpkVuRzI1iHHQfIhOg6zZL+848rc8jQVe26pf/RWxYvGbXCAAxzgAAc4wAEOcIADHOAABzjAAQ5wgAMc4AAHOMABDnCAAxzgAAc4wAEOcIADHOAAx+c56FImWiulVZ8SuTJtHOT1FPy7d+eIGt2jUFbmwkRc27BZbUpfw+FS2tRwFvtR60lUa93iVjsa8TqPdsihwyragOYa+SrbpRM7NwtWZ9VnrBKCK661rceEhLyKQv9fOYh6c12rXXxxmNlLi+Lab+WSeYtrbWHuq6OEZtU/OToHXdJD6Gl6LztH9mt45Rgn8Lh1eI/DMFyXxcyjBeuj0+o3nNe7i3G7D30sbh3eei/dpq+cpzSyOX2eVedU7MdIzonrcvGV97jVpjHwM351CHNqmr/nI6xn+BPryW7fUfMap75Hbtl9fQM7NBuB7hGlUwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMjowNDo0MyswMDowMFHxMdcAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjI6MDQ6NDMrMDA6MDAgrIlrAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="japan-post-4-state-barcode">Japan Post 4 State Barcode</h3>
<p>The <strong>Japan Post 4 state barcode</strong> symbology is used by the Japan Post service to encode the delivery point identifier on letter mail.</p>
<h4 id="data-and-options-41">Data and Options</h4>
<ul>
<li>The data may contain any of the following characters:
<ul>
<li>Capital letters <code>A-Z</code></li>
<li>Digits <code>0-9</code></li>
<li>Hyphen <code>-</code></li>
</ul></li>
</ul>
<h4 id="example-6">Example</h4>
<pre><code>Data:    6540123789-A-K-Z
Options: 
Encoder: japanpost
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAAANCAMAAAD15vA5AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABqSURBVEjH7ZTBCsAgDEOT///pwaBb1VTmZfQQ8dAG0/ouARgH9yWiCeHRKDRkGUKmHrQMnptkKhyQfV4GwxnOcP/DYfrdWdXXZLgG/zTcBu6NkaJasuHjg7FSIbCNDBYyhGncaTjDNYS7AEoWCOd071ZoAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIyOjAxOjU1KzAwOjAwGKLPNwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMjowMTo1NSswMDowMGn/d4sAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="maxicode">MaxiCode</h3>
<p>The <strong>MaxiCode</strong> barcode symbology is a 2D barcode based on a hexagonal matrix surrounding a bulls eye pattern. It can encode a structured carrier message and full 256 character extended-ASCII.</p>
<p>Also known as: UPS Code, Code 6, Dense Code.</p>
<p>Standards: ISO/IEC 16023, ANSI/AIM BC10 - ISS MaxiCode.</p>
<h4 id="data-and-options-42">Data and Options</h4>
<ul>
<li>The <strong>mode</strong> option is used to specify how the data is structured in the symbol:
<ul>
<li><code>mode=2</code> - Formatted data containing a Structured Carrier Message with a numeric (US domestic) postal code.</li>
<li><code>mode=3</code> - Formatted data containing a Structured Carrier Message with an alphanumeric (international) postal code.</li>
<li><code>mode=4</code> - Unstructured extended ASCII data using standard error correction.</li>
<li><code>mode=5</code> - Unstructured extended ASCII data using enhanced error correction.</li>
<li><code>mode=6</code> - Barcode reader programming.</li>
</ul></li>
<li>If <strong>mode</strong> is unspecified the encoder will default to selecting <code>mode=5</code> if the encoded length of the input data permits enhanced error correction, otherwise it will select <code>mode=4</code> which provides standard error correction.</li>
<li>The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</li>
<li>If <code>mode=4</code>, <code>mode=5</code> or <code>mode=6</code> the data field may contain any extended ASCII data.</li>
<li>If <code>mode=2</code> or <code>mode=3</code> the data field must begin with a properly structured carrier message, followed by any extended ASCII data.</li>
<li>The structured carrier message contains a postal code, three-digit class of service and a three-digit ISO country code separated by <em>GS</em> (ASCII 29) characters. It is formatted in the data field as follows: <code>[postal code]^029[country code]^029[service class]^029</code>. If <code>mode=2</code> the postcode must be numeric, whilst if <code>mode=3</code> the postcode may contain up to six digits, upper case letters and spaces.</li>
<li>Alternatively, messages may begin with the special application field identifier <code>[)&gt;{RS}01{GS}yy</code> where <code>{RS}</code> represents ASCII value 30, <code>{GS}</code> represents ASCII value 29 and <code>yy</code> is a two-digit year. In parse mode this is represented as <code>[)&gt;^03001^0299</code>. If <code>mode=2</code> or <code>mode=3</code> this must be immediately followed by the structured carrier message.</li>
</ul>
<h4 id="examples-33">Examples</h4>
<pre><code>Data:    This is MaxiCode
Options: 
Encoder: maxicode
</code></pre>
<pre><code>Data:    This is Maxi^067ode
Options: parse
Encoder: maxicode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABICAMAAACJBPh2AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAJdSURBVFjDrVcBkuMgDDP///RO22AkWSbpFuaOTQsII0smjXi1kW19kAFs7wHqoJ3EWoivP+8n3GVNiDlmsQY/15kGqwn1+i9YId0cDwhbOj4gUVVYaIjy9OOeHA6R0XbdlPF19154GMuzOb7r8t+Z7p9Hst1xrN+7D96ZmA5jXZo40FKY4+cua8SBY3YFpu9UAzra+xFLBBUdV6lvvI1gV0W5x7qGyFqu5YS6IvXlnHqPpXt33l5hf1w2iHxQOqdhjwV30Bar87ZMdulcYeOyjeyyBIDjujQO4s1sm4TDV+I+JKzxNoqqHtBd394bFBY+MvH13m69PcOG9SMRfBo3RXdQrEA9GwsjavwIjFKUi02jyabuKNYMsxWqeLWqBk6Yn1f6pSvefohlkJy3hSt/Rq/wzkJ77hssN9RrAnRaroLd64HT6nKlE2qrXuuhZXCLZYwtXi3e9k1DK6WeSwdcbq7rqjPkcFXs0Z+QKhU5l19hiCUTwvR2lRbxYs6KcVJFpzLD3wMZMXWtWLymjKoMgHZRRC21iBWPsIKxYHnQs00QvDUQ23K/P8GS28cpiLSKuS6igd0DshK1oRC2WHozGijuJnqZOzRjJiiLhRpU0gQLq+fkQX7L0htJ2DjKVCYI6dO84WTCEN/WD5RUWx1LXL20doKynpLtIAY5XI8VGnrlxvCkFdbgrti4AAlW5G/qgtVxSRZmR7uGFc9iVTvdYVHY1BHJNuz8DQH11t4qo0lYyJRyOTb7UySFaE54JneT2PLu429E1WobUi7kkGj3Yb6z91BxuSSZGT6F9QcSZQh/OTlEjgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMjowNjowNiswMDowMIN2wLcAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjI6MDY6MDYrMDA6MDDyK3gLAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<pre><code>Data:    152382802^029840^029001^0291Z00004951^029UPSN^02906X610^029159^0291234567^0291/1^029^029Y^029634 ALPHA DR^029PITTSBURGH^029PA^029^004
Options: mode=2 parse
Encoder: maxicode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABICAMAAACJBPh2AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAKwSURBVFjDrVjRksQgCIP//+mb6VVJQrDdu/Wh41qNEAJ0NuIemfF+XJvloa+/hfUBFBwhrLwHzmHcq7S3rON9e+mAtY3Oa0swVpkYdXFOYyAIrSxztuvXDB75uxb4yP7ztjjA+yFe5zXk4v9YlwO/WBsugWFYqy0JW9Ajwk3GSlzL+jmKgwS3ZwWKWD0+BYyKmSPOxKZZEGPjcQgDdQyunOL0CmtW7ZuRj6uJmTOQBhkScn82LAjH4HkBiCtNt7VNIiPceKrghMFSGnhXAQY9AitYdvFwnIAsm6ilZo8VA5aNacu9zB6tDrbPot/kDsJNWMSvxUpVMFdX0h9AYTi6VmWGVtiooyzE+DUzKZYkljJ/9afUGDlqRPRScsAbtEclEOorSxbbZcMyVIFNQUeDeUAs8y0gmmTuCZniaA2DaKOKstm0r4GXmPD3zxW+LFucwBBLqwcGgrjmCqKOWKxoWPcXQ8Pa5QfKQ+9hcB5whbrlGxuKmXDEcnwUVssL9E99rPbAMc/qHU9YmBOGdhYkKIIMaZrg5qZi87131OoRC70PHj2HCqtRE+p9advndjImmtgu0THVHKn79geZEYRgjRGas/Oknd9diXWPjE19m3Kj9ZS5tlirnVUTgWZosWJhiRntm4ZWG7lwbN/Jaf0JVtVCIrq8GT6xqvVTTb3rfTui7hosil0AqWrY4dGpp6LwEdbEJ1b2w8NghcFi998Pd67U+ScPu11fwoK2gFmkfAStiUwr6dZMRY6MdBW4tyt3RMB4K2a+gvVG0Iva0EiZoK7aJHBW7xErJixMB0KpDwQhimer2OA/FP4fGa0yDYsuXHUU4sPtk+WTWwSZ8jraOZsuTpydUshzsry0UNHhMBQEGTVgqTmiVWMOlFmua9zXOQYsXCmHXEAMI08Z9U2sH4nhCJd0wpzjAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIyOjA3OjAwKzAwOjAwD2SeswAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMjowNzowMCswMDowMH45Jg8AAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<pre><code>Data:    ABC123^029840^029001^0291Z00004951^029UPSN^02906X610^029159^0291234567^0291/1^029^029Y^029634 ALPHA DR^029PITTSBURGH^029PA^029^004
Options: mode=3 parse
Encoder: maxicode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABICAMAAACJBPh2AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAK0SURBVFjDrVhZlqQwDLPvf+l5jwqxFjtQPZUPGkKieJFsqiPWyIz341osF339K6wvoGALYeUaeA9jzdLaso7X7akD1jY6ryXBWGVi1ME5jSFAaGWZs12/7uCSn7nAS/rjsjjA+yFf5zmMxf9jXQ58sDZcQoRhrpYkLEGPCDcZK3Eu63EkBxFu3xUoYnl+ChgZM2ecA5vNhBgbj0MiUNvgyClPr7Bm1r4Z+TibqJwhaKCQkPPTsCAdg+cFIK4Yb2uZZEZi04cKdjRYEgbBqrmgS2AF07DRGVocO6EWm3F1HLGihVoiTd7TBlLA9l70G/MtpVKwSEB3xDusRAZLnW0OSBMiHKY1H3CRSV3RASO7SHxs0xBrB0JiKJZq1bIgOTJtV5odK+ReCQzsMCwZbFMGbbWgFVYMUJOWCJnyOGFhW6/UayL3MYAF9Lr/rIUFJp8TDZZWDzAL+AiPygwUhmCFYa0vBsOqjIJCrGXBfsDl0G3fVLh80hlLW2blUqJJ/vU+JkOVj2+w9NGrAXqvYj5zotVjJwiyxLgqnxMqJmIUYDUaItJwaIJxmzJhUNpDSXB4iNUZqTkw61qyF5gbmAPZNWmkjHnIrUZz6WAX2GiVhvUOrnvW8IK+cxSL1b/VtTOmZ3DvgBxNH6lhA97l/VNFikUwVhywqhZKgihM3E3rcPwSh46kWPmAld0Srlt+Cb4LmSNGsbC/vRixi3bzpcGKBgu59s3o9hU7/+Sh2/UjLGgLlCdZGzQnNN0R33d0CCvtKB1p0oIFJuxk9malf7R4URsaKQcIZbHfATiz94gVExbKQYvDEpoEiu/uYsN1TbCqFp6w6MDESsnFVHbDfwBA+eTaURoW7CZLTVdgH4sLlR1OA3dV6auGpeYIVxtzoMxyXeO+zjlg4ko55ALSRORJUb/E+geQJAi4RSjaqwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMjowNzo0OCswMDowMLjB3i4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjI6MDc6NDgrMDA6MDDJnGaSAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<pre><code>Data:    [\)&gt;^03001^02996152382802^029840^029001^0291Z00004951^029UPSN^02906X610^029159^0291234567^0291/1^029^029Y^029634 ALPHA DR^029PITTSBURGH^029PA^029^004
Options: mode=2 parse
Encoder: maxicode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABICAMAAACJBPh2AAAJJGlDQ1BpY2MAAHjalZVnUJNZF8fv8zzphUASQodQQ5EqJYCUEFoo0quoQOidUEVsiLgCK4qINEUQUUDBVSmyVkSxsCgoYkE3yCKgrBtXERWUF/Sd0Xnf2Q/7n7n3/OY/Z+4995wPFwCCOFgSvLQnJqULvJ3smIFBwUzwg8L4aSkcT0838I96Pwyg5XhvBfj3IkREpvGX4sLSyuWnCNIBgLKXWDMrPWWZDy8xPTz+K59dZsFSgUt8Y5mjv/Ho15xvLPqa4+vNXXoVCgAcKfoHDv+B/3vvslQ4gvTYqMhspk9yVHpWmCCSmbbcCR6Xy/QUJEfFJkT+UPC/Sv4HpUdmpy9HbnLKBkFsdEw68/8ONTIwNATfZ/HW62uPIUb//85nWd+95HoA2LMAIHu+e+GVAHTuAED68XdPbamvlHwAOu7wMwSZ3zzU8oYGBEABdCADFIEq0AS6wAiYAUtgCxyAC/AAviAIrAN8EAMSgQBkgVywDRSAIrAH7AdVoBY0gCbQCk6DTnAeXAHXwW1wFwyDJ0AIJsArIALvwTwEQViIDNEgGUgJUod0ICOIDVlDDpAb5A0FQaFQNJQEZUC50HaoCCqFqqA6qAn6BToHXYFuQoPQI2gMmob+hj7BCEyC6bACrAHrw2yYA7vCvvBaOBpOhXPgfHg3XAHXwyfgDvgKfBsehoXwK3gWAQgRYSDKiC7CRriIBxKMRCECZDNSiJQj9Ugr0o30IfcQITKDfERhUDQUE6WLskQ5o/xQfFQqajOqGFWFOo7qQPWi7qHGUCLUFzQZLY/WQVugeehAdDQ6C12ALkc3otvR19DD6An0ewwGw8CwMGYYZ0wQJg6zEVOMOYhpw1zGDGLGMbNYLFYGq4O1wnpgw7Dp2AJsJfYE9hJ2CDuB/YAj4pRwRjhHXDAuCZeHK8c14y7ihnCTuHm8OF4db4H3wEfgN+BL8A34bvwd/AR+niBBYBGsCL6EOMI2QgWhlXCNMEp4SyQSVYjmRC9iLHErsYJ4iniDOEb8SKKStElcUggpg7SbdIx0mfSI9JZMJmuQbcnB5HTybnIT+Sr5GfmDGE1MT4wnFiG2RaxarENsSOw1BU9Rp3Ao6yg5lHLKGcodyow4XlxDnCseJr5ZvFr8nPiI+KwETcJQwkMiUaJYolnipsQUFUvVoDpQI6j51CPUq9RxGkJTpXFpfNp2WgPtGm2CjqGz6Dx6HL2IfpI+QBdJUiWNJf0lsyWrJS9IChkIQ4PBYyQwShinGQ8Yn6QUpDhSkVK7pFqlhqTmpOWkbaUjpQul26SHpT/JMGUcZOJl9sp0yjyVRclqy3rJZskekr0mOyNHl7OU48sVyp2WeywPy2vLe8tvlD8i3y8/q6Co4KSQolCpcFVhRpGhaKsYp1imeFFxWommZK0Uq1SmdEnpJVOSyWEmMCuYvUyRsryys3KGcp3ygPK8CkvFTyVPpU3lqSpBla0apVqm2qMqUlNSc1fLVWtRe6yOV2erx6gfUO9Tn9NgaQRo7NTo1JhiSbN4rBxWC2tUk6xpo5mqWa95XwujxdaK1zqodVcb1jbRjtGu1r6jA+uY6sTqHNQZXIFeYb4iaUX9ihFdki5HN1O3RXdMj6Hnppen16n3Wl9NP1h/r36f/hcDE4MEgwaDJ4ZUQxfDPMNuw7+NtI34RtVG91eSVzqu3LKya+UbYx3jSONDxg9NaCbuJjtNekw+m5qZCkxbTafN1MxCzWrMRth0tie7mH3DHG1uZ77F/Lz5RwtTi3SL0xZ/Wepaxls2W06tYq2KXNWwatxKxSrMqs5KaM20DrU+bC20UbYJs6m3eW6rahth22g7ydHixHFOcF7bGdgJ7Nrt5rgW3E3cy/aIvZN9of2AA9XBz6HK4ZmjimO0Y4ujyMnEaaPTZWe0s6vzXucRngKPz2viiVzMXDa59LqSXH1cq1yfu2m7Cdy63WF3F/d97qOr1Vcnre70AB48j30eTz1Znqmev3phvDy9qr1eeBt653r3+dB81vs0+7z3tfMt8X3ip+mX4dfjT/EP8W/ynwuwDygNEAbqB24KvB0kGxQb1BWMDfYPbgyeXeOwZv+aiRCTkIKQB2tZa7PX3lwnuy5h3YX1lPVh68+EokMDQptDF8I8wurDZsN54TXhIj6Xf4D/KsI2oixiOtIqsjRyMsoqqjRqKtoqel/0dIxNTHnMTCw3tir2TZxzXG3cXLxH/LH4xYSAhLZEXGJo4rkkalJ8Um+yYnJ28mCKTkpBijDVInV/qkjgKmhMg9LWpnWl05c+xf4MzYwdGWOZ1pnVmR+y/LPOZEtkJ2X3b9DesGvDZI5jztGNqI38jT25yrnbcsc2cTbVbYY2h2/u2aK6JX/LxFanrce3EbbFb/stzyCvNO/d9oDt3fkK+Vvzx3c47WgpECsQFIzstNxZ+xPqp9ifBnat3FW560thROGtIoOi8qKFYn7xrZ8Nf674eXF31O6BEtOSQ3swe5L2PNhrs/d4qURpTun4Pvd9HWXMssKyd/vX779Zblxee4BwIOOAsMKtoqtSrXJP5UJVTNVwtV11W418za6auYMRB4cO2R5qrVWoLar9dDj28MM6p7qOeo368iOYI5lHXjT4N/QdZR9tapRtLGr8fCzpmPC49/HeJrOmpmb55pIWuCWjZfpEyIm7J+1PdrXqtta1MdqKToFTGade/hL6y4PTrqd7zrDPtJ5VP1vTTmsv7IA6NnSIOmM6hV1BXYPnXM71dFt2t/+q9+ux88rnqy9IXii5SLiYf3HxUs6l2cspl2euRF8Z71nf8+Rq4NX7vV69A9dcr9247nj9ah+n79INqxvnb1rcPHeLfavztuntjn6T/vbfTH5rHzAd6Lhjdqfrrvnd7sFVgxeHbIau3LO/d/0+7/7t4dXDgw/8HjwcCRkRPox4OPUo4dGbx5mP559sHUWPFj4Vf1r+TP5Z/e9av7cJTYUXxuzH+p/7PH8yzh9/9UfaHwsT+S/IL8onlSabpoymzk87Tt99ueblxKuUV/MzBX9K/FnzWvP12b9s/+oXBYom3gjeLP5d/Fbm7bF3xu96Zj1nn71PfD8/V/hB5sPxj+yPfZ8CPk3OZy1gFyo+a33u/uL6ZXQxcXHxPy6ikLxyKdSVAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGUExURQAAAP///6XZn90AAAABYktHRAH/Ai3eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QQNCDcJ8e5VsgAAArJJREFUWMOtV9t2HCEMs///p9ucDlg3727S8DCZZUAIWTak6qt1n8f8pJ5pb/t+E6v6PorfvtW628Fk8b5NaE/v+fMR1l2VN3AWuAupQEgCJuADuSFmwCrE+stDuPfl1rBeNfFIj09lP1hfS/8nVonJ/qEDSt/tXRnuyvIwaN7s02dip4ZAuPPpGM88b722Gu3FTIt8L9snskal3/b9LJn3vh+2vqFbQzUdomtUH9OzdKTFNqS18uJMqndpZSwLkviam/IfknkQit4Uy4Mhdc9NFANZlpOixYKVIjn8EN9kTe7GckZhK4527VjNWCEK6Sjq5wEgSuvmexWqZWeksFjP0LuO8rr+8NS/32yPDzuOYK4iYn/q9sBLcBFKEtMsAFPK91IMJbwh1jpDV9NPLFeIo00Vo3BoCFdlTAHiL8+M+2HAou+xx4IHtDAtcW66vsC5zdGTyS0Gi1hNHuEKCDuE31jpGohwqZq03rH0MqNY6W6y7BEdDGEErFDcF+2JWK9YVoOiJ/SYG+e9xMpeDVh9scTPCsiOniIzoThjpRxgHSEbSXLZgQpYqfiR68SgVDVobFgEYxgKjRRLCA5lDW7J0iT+JqyogxK1nbL7Tau5zpwgnbw4dUD3LFjDIZ1bHFzfGd2VZmmxwadYNJ1UXVKdIdqgzrltWClDlhuoan0KiF439DRlR6IQziTmh8f6BRYMyZmDveBux6LlnKli8WBytd3h1DqMNdxiSRAyLpWotIaRds5aDK9hgLINFp0vbvIcSBsp2c9iCFHhJVh63cKJHoMQsui0/To1AuAx1I1vww3GFfbh28BbZYitW3ObDfsNLKTTbYPnHnNK7VQ81IL/oyIjeuTJAauJXXWlLps7xYn3IibKWHJ5yH6YDOpXYHwDWN9cKnpYBEVGweILzi9g/QHZ/Qf2hLwfdgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNy0wNC0xM1QwOTo1NTowOSswMTowMGVpXIQAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTctMDQtMTNUMDk6NTU6MDkrMDE6MDAUNOQ4AAAALXRFWHRpY2M6Y29weXJpZ2h0AENvcHlyaWdodCBBcnRpZmV4IFNvZnR3YXJlIDIwMTEIusW0AAAAMXRFWHRpY2M6ZGVzY3JpcHRpb24AQXJ0aWZleCBTb2Z0d2FyZSBzUkdCIElDQyBQcm9maWxlEwwBhgAAADJ0RVh0aWNjOm1hbnVmYWN0dXJlcgBBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGVcfj2fAAAAK3RFWHRpY2M6bW9kZWwAQXJ0aWZleCBTb2Z0d2FyZSBzUkdCIElDQyBQcm9maWxlMSiCoQAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE3LTAzLTI11dRudAAAADB0RVh0U291cmNlAGh0dHA6Ly90aGUtYnVydG9ucy54eXovYmFyY29kZS1nZW5lcmF0b3IvzSNPjQAAAABJRU5ErkJggg==" /></p>
<h3 id="royal-mail-4-state-customer-code">Royal Mail 4 State Customer Code</h3>
<p>The <strong>Royal Mail 4 State Customer Code</strong> is a barcode symbology used by the British Postal Service to encode the postcode and delivery point identifier on letter mail.</p>
<p>Also known as: RM4SCC, CBC, BPO 4 State Code</p>
<h4 id="data-and-options-43">Data and Options</h4>
<ul>
<li>The data may contain any of the following characters from the postcode and DPID:
<ul>
<li>Capital letters A-Z</li>
<li>Digits 0-9</li>
</ul></li>
<li>The maditory checksum digit is calculated automatically and must not be included in the data field</li>
</ul>
<h4 id="example-7">Example</h4>
<pre><code>Data:    LE28HS9Z
Options: includetext
Encoder: royalmail
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHwAAAAVCAMAAACzO3oeAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACRQTFRFAAAA////7u7uqqqq3d3dmZmZu7u7iIiIzMzMd3d3ZmZmRERE/zY2hgAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAD9SURBVEjH7VPRFoMgCEURxPr//125hdC0rb30sDhUgheuIAGEENanCuhHXTsH9HHO/QaAXa7XG+Am/1tysMhzq9+DbvJryN2g9AbOTwyMQbvp6w6cY7rJLyQ/kuiM+AneixrKSh4RU/MkYia1MhKqgUSs6SklahxScsOJwQVmxtAXeO5bV6m6hVqjDI1AVbcTV9UMcoqcrCltExHZwCx5FhOydGRqNxBzGIiStw4WNkndsbMIGZjHkTkykiHMwwFQctdP0Tpcy7Bqt3KXIVgDxe/syNM0laIAnkuZtu7KapiC2vTJLDKbS0BsxQqaapcM81HlX8vBrxZTf30kDw3MDC4DmiREAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEyOjM4OjQ3KzAwOjAwc8kCYgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMjozODo0NyswMDowMAKUut4AAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="royal-mail-mailmark">Royal Mail Mailmark</h3>
<p><strong>Royal Mail Mailmark</strong> is an implementation of the <a href="#data-matrix">Data Matrix</a> (ECC 200) barcode symbology for application within the Royal Mail postage system.</p>
<p>Standards: Royal Mail Mailmark Barcode Definition Document</p>
<h4 id="data-and-options-44">Data and Options</h4>
<ul>
<li>The data field input consists of 45 characters of Mailmark structured data (including required space padding) followed by variable-length, free-formatted customer data.</li>
<li>The mandatory <strong>type</strong> option is used to specify the size of the symbol, either <code>7</code>, <code>9</code> or <code>29</code>.</li>
</ul>
<h4 id="example-8">Example</h4>
<pre><code>Data:    JGB 012100123412345678AB19XY1A 0             www.xyz.com
Options: type=29
Encoder: mailmark
</code></pre>
<h3 id="royal-tnt-post-4-state-barcode">Royal TNT Post 4 state barcode</h3>
<p>The <strong>Royal TNT Post 4 state barcode</strong> symbology is used by the Dutch Postal Service to encode the delivery point identifier on letter mail.</p>
<p>Also known as: KIX, Klant IndeX.</p>
<h4 id="data-and-options-45">Data and Options</h4>
<ul>
<li>The data may contain any of the following characters from the DPID:
<ul>
<li>Capital letters <code>A-Z</code></li>
<li>Digits <code>0-9</code></li>
</ul></li>
</ul>
<h4 id="example-9">Example</h4>
<pre><code>Data:    1231FZ13XHS
Options: includetext
Encoder: kix
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAAAVCAMAAACe5ZfhAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACRQTFRF////AAAA7u7uqqqqd3d3u7u7iIiImZmZ3d3dzMzMZmZmRERExJk88AAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVEjH7ZPRDoMgDEURWqDy//87skW4RWo23YuJxAeubU8vWJ37rOX9GGIaajudYBft8hTLDj6GHkM/GlqwYHEndn8uegzdztBuyMdRO0hwA0dlH/8ni81/DN3RECyvhHdX1wlEIO4ihhR6BIXKy4k55E1xFXOcQuTkfdqK6q7qLSQUoRMDoW4J3aLAPELJTgycRkTvI77ukfR+5gRBeySmIQBgnxGnEERIQKviLAKetbayOhHj3UVv4TQiRiQgQpJxQ9pPRZg3BCsI6vGTRciDWVM3pCYlrWtzJ4Vo7RE11JjHhXKP1KIyTdMILjkXbp1EmnAUAh7dXPn6b/8lwrfzvQD++gXVsYlosQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMjowMzoyMiswMDowMNM1KJ0AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjI6MDM6MjIrMDA6MDCiaJAhAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="usps-intelligent-mail">USPS Intelligent Mail</h3>
<p>The <strong>USPS Intelligent Mail</strong> barcode is used by the US Postal service to encode the delivery and sender information on letter mail.</p>
<p>Also known as: USPS OneCode.</p>
<p>Standards: USPS-STD-11.</p>
<h4 id="data-and-options-46">Data and Options</h4>
<ul>
<li>The data contains 31 digits representing the following:
<ul>
<li>Barcode Identifier - two digits</li>
<li>Service Type Identifier - three digits</li>
<li>Mailer ID, Sequence Number - either six then nine digits respectively or nine then six digits respectively</li>
<li>Delivery Point ZIP Code - eleven digits</li>
</ul></li>
<li>The mandatory checksum digit is calculated automatically and must not be included in the data field.</li>
</ul>
<h4 id="example-10">Example</h4>
<pre><code>Data:    0123456709498765432101234567891
Options: includetext
Encoder: onecode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANUAAAAVCAMAAADmdlsFAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRFAAAA////d3d3MzMzzMzMqqqq7u7uREREmZmZIiIiu7u7ERERVVVViIiI3d3dZmZmE4fqzwAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAJHSURBVFjD7ZTZkqswDESRjdcE+P+/vZJaNkucTM1b7hRUFss+6kayYZqISL567UGfuoymt9wOTYPpN8Av0qcrMLpRm5vuqu6qvqKqE/y70Rcm3VX9R1WdTu0ZoevfOJiuo9HSi83A8+WxuT5ep3fAJ4u7qruq76jqb11/tSrn/UwUnIYxeZ9jSqVKUHTukRIvMpZzSukxawYzkmaMRfxbdyZbpjKqqerUzeAsERbM12yRrTrQFPWDmYmMq6pP4k+awGR2KIujNXGwPWRKhzQnipv8O9IMYXxnEAXLY0ZxZIJRTVWnZgZnjbBgvpA0KbNlzaZuZu2Ox1W5hbvCfQNTuRtljRSe0owE881FckvVRiUZcoarenqNQTSnKHlgGEcmGNVUdWpm5iwRFuBrkshutqzZ1M2s3fGbqphJB4Y7ylHJtD5J5YOri+cZ5zbdS1VNwVf32BmNok+cB0ZwZDZGNKHeqoIzIlsoueHwNVvdTKg3sx+qyse9Ipdwdgtxq4pbMet1nU9c4d4jo7pwYDTihdgY4PLTGdY0dasq971qC8wcbck3HdY09Wb2uaqAB8SYLHu8BbGba/WVb3CpIiwbUGh+4ule/VzllDcGkQudURyZYFRT1XtV5iwRFpRpkvCFrWpCnZrZ56q4Hz50ZvP8upmLS4seZhXhKEvbeM4t6KAPsTh9gYFBtDLpOpMWy1RGNVW9V2XOEmGh+eIEIlttVRPq3eyHqqiu18l4nkJ0mJNh1IbuGXHAHOP4avPiPPK9StLVenT9A7OiIZ8j3PM7AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEyOjM5OjU0KzAwOjAwYUlzXwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMjozOTo1NCswMDowMBAUy+MAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="usps-postnet">USPS POSTNET</h3>
<p>The <strong>USPS POSTNET</strong> barcode symbology is used by the US Postal service to encode the ZIP code information on letter mail.</p>
<h4 id="data-and-options-47">Data and Options</h4>
<ul>
<li>The data field contains the digits from the ZIP code, without dashes.</li>
<li>The mandatory checksum is calculated automatically and must not be included in the data field.</li>
</ul>
<h4 id="example-11">Example</h4>
<pre><code>Data:    12345123412
Options: 
Encoder: postnet
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMsAAAAJCAMAAACrBSi+AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABASURBVDjLY2BgRAIMUIzgofPRZREMBjRhYo3EYiKaIQyEHAVVwzDql1G/jPqFNL8wICHSWYNG06hfBqem4eQXAHUABap+DCuxAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEyOjQxOjExKzAwOjAwjdcHdQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMjo0MToxMSswMDowMPyKv8kAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="usps-planet">USPS PLANET</h3>
<p>The <strong>USPS PLANET</strong> barcode symbology is used by the US Postal service to encode the ZIP code information on letter mail.</p>
<h4 id="data-and-options-48">Data and Options</h4>
<ul>
<li>The data field contains eleven or thirteen digits, without dashes.</li>
<li>The mandatory checksum is calculated automatically and must not be included in the data field.</li>
</ul>
<h4 id="example-12">Example</h4>
<pre><code>Data:   01234567890
Options: 
Encoder: planet
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMsAAAAJCAMAAACrBSi+AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABESURBVDjLY2BghAEGMIJSUBaqFFwMRZYBizCKaiTt6GahyxCrHZtSBoZRv4z6ZdQvpPmFAU0JaaxBo2nUL4NT03DyCwA9EQVuZ2G3BQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMlQxMjo0Mjo1MiswMDowMNNCqBEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTJUMTI6NDI6NTIrMDA6MDCiHxCtAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="usps-fim-symbols">USPS FIM Symbols</h3>
<p>The <strong>USPS FIM</strong> encoder is used to generate static predefined barcode symbols.</p>
<h4 id="data-and-options-49">Data and Options</h4>
<ul>
<li>The data field accepts one of the following values:
<ul>
<li><code>fima</code> - US Postal Service FIM-A symbol</li>
<li><code>fimb</code> - US Postal Service FIM-B symbol</li>
<li><code>fimc</code> - US Postal Service FIM-C symbol</li>
<li><code>fimd</code> - US Postal Service FIM-D symbol</li>
</ul></li>
</ul>
<h4 id="examples-34">Examples</h4>
<p>A USPS FIM A symbol:</p>
<pre><code>Data:    fima
Options: 
Encoder: symbol
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAtCAMAAAD1JOlfAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAmSURBVDjLY2BgYGRkBBMwgMIB8xhAYFTZqLJRZaPKRpWNKhsSygDnFwTte5A9eAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxOToxNDoxNyswMDowMLd4XhgAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTk6MTQ6MTcrMDA6MDDGJeakAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<p>A USPS FIM B symbol:</p>
<pre><code>Data:    fimb
Options: 
Encoder: symbol
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAtCAMAAAD1JOlfAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAlSURBVDjLY2BgYIQAMAPGQ+EAGQyjykaVjSobVTaqbFTZEFEGALIvBJP3qTeUAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDE5OjE0OjU1KzAwOjAwpK1BywAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxOToxNDo1NSswMDowMNXw+XcAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<p>A USPS FIM C symbol:</p>
<pre><code>Data:    fimc
Options: 
Encoder: symbol
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAtCAMAAAD1JOlfAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAkSURBVDjLY2BgYGRkBBOMOBkMIDCqbFTZqLJRZaPKRpUNCWUAsuMEk+td6IsAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTk6MTU6MzQrMDA6MDArdyjGAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE5OjE1OjM0KzAwOjAwWiqQegAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<p>A USPS FIM D symbol:</p>
<pre><code>Data:    fimd
Options: 
Encoder: symbol
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAtCAMAAAD1JOlfAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAnSURBVDjLY2BgYGRkBBFgBiMjOgMixTCqbFTZqLJRZaPKRpUNEWUAffsEOSAbqs4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTk6MTY6MjUrMDA6MDCqnZjvAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE5OjE2OjI1KzAwOjAw28AgUwAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h2 id="pharmaceutical-symbols">Pharmaceutical Symbols</h2>
<h3 id="italian-pharmacode">Italian Pharmacode</h3>
<p><strong>Italian Pharmacode</strong> is a discrete, fixed length, self-checking barcode symbology used for pharmaceutical products in Italy.</p>
<p>Also known as: Code 32, IMH, Radix 32.</p>
<h4 id="data-and-options-50">Data and Options</h4>
<ul>
<li>The data field must contain either eight or nine digits from the code. The leading <em>A</em> which is provided in some applications must be omitted.</li>
<li>The mandatory check digit is calculated automatically if it is not provided, otherwise the provided check digit is verified.</li>
</ul>
<h4 id="examples-35">Examples</h4>
<p>Identical symbols, input provided with and without a check digit:</p>
<pre><code>Data:    012345676
Options: includetext
Encoder: code32
</code></pre>
<pre><code>Data:    01234567
Options: includetext
Encoder: code32
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAH8AAABQCAMAAAAHmVrCAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7u3d3du7u7qqqqzMzMiIiImZmZd3d3VVVVREREZmZm+yzEZwAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEbSURBVGje7dJbcsMgDAVQJAMSLftfb4V4GKfTNjP08xKHuYjExwZCIKJAIYyvf2gfr0Rj9q7TL2Oi7Y5hHz+8AB8+fPjw4cOHDx8+fPjw4cOHDx8+fPjw4cOHDx8+fPjw4cOHDx8+/FN/tunf4zvxNtt75ueYHvOBrq1Cj5l11x37qcWUrU+i0fpiHUnSZNl74g8rlTImrPJZSp35r/aOTyKt84tiYxroM62XuIYxj3/olo/9nJX7LadvNc8lt9RKomJvq8mXyu2Zz/0So7z4uS8t+6KMR7JszyMjrnzuqy/vvv557qy0gujcC/Wr/3DmY98OE1cZ509rVcr9hGk/f1c1uXhmO5i+YbTyP7z/aMyvlYu/5X3L3zmAX/IDFvEyivv/AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDEzOjQ5OjU4KzAwOjAwe4xh3wAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxMzo0OTo1OCswMDowMArR2WMAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="pharmacode">Pharmacode</h3>
<p><strong>Pharmacode</strong> is a binary barcode symbology that is used by the Pharmaceutical industry.</p>
<p>Also known as: Pharmaceutical Binary Code. Laetus Code.</p>
<p>Variants:</p>
<ul>
<li><a href="#two-track-pharmacode">Two-track Pharmacode</a> is a variant of the Pharmacode barcode.</li>
</ul>
<h4 id="data-and-options-51">Data and Options</h4>
<ul>
<li>The data field must contain a number between <code>3</code> and <code>131070</code> inclusive.</li>
<li>The <strong>nwidth</strong>, <strong>wwidth</strong> and <strong>swidth</strong> options can be used to specify a custom width (in points) for the narrow bars, wide bars and inter-bar spaces respectively.</li>
</ul>
<h4 id="example-13">Example</h4>
<pre><code>Data:    117480
Options: 
Encoder: pharmacode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFsAAAAXCAMAAABTcsO8AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAxSURBVEjHY2AAAkZGRhjFCCWQ+JhMRkxNyEyYCoZRs0fNHjV71OxRs0fNHjV72JoNANkxBFFeu0N+AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEyOjQ0OjA4KzAwOjAwMsyJfAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMjo0NDowOCswMDowMEORMcAAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="two-track-pharmacode">Two-Track Pharmacode</h3>
<p><strong>Two-Track Pharmacode</strong> is a binary barcode symbology used by the Pharmaceutical industry.</p>
<p>Also known as: Two-track Pharmaceutical Binary Code, Two-track Laetus Code.</p>
<p>Variants:</p>
<ul>
<li><a href="#pharmacode">Pharmacode</a> is a variant of the Two-track Pharmacode barcode.</li>
</ul>
<h4 id="data-and-options-52">Data and Options</h4>
<ul>
<li>The data field must contain a number between <code>4</code> and <code>64570080</code> inclusive.</li>
</ul>
<h4 id="example-14">Example</h4>
<pre><code>Data:    117480
Options: 
Encoder: pharmacode2
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAXCAMAAABgSdy1AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAvSURBVDjLY2AAA0ZGRigBJRGiyCSGwKjmUc001YzPXCI1YwAc9qMJjGoe1UxTzQAxqQIRI8oiogAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMlQxMjo0NDo1OCswMDowMHoshxgAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTJUMTI6NDQ6NTgrMDA6MDALcT+kAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="pzn">PZN</h3>
<p><strong>PZN</strong> is a discrete, fixed length, self-checking barcode symbology used for pharmaceutical products in Germany.</p>
<p>Also known as: Pharmazentralnummer.</p>
<p>Variants:</p>
<ul>
<li>PZN7 is the seven-digit format.</li>
<li>PZN8 is the eight-digit format.</li>
</ul>
<h4 id="data-and-options-53">Data and Options</h4>
<ul>
<li>For the default PZN7 encoding, the data field must contain six digits or seven digits.</li>
<li>The <strong>pzn8</strong> option specifies that a PZN8 symbol is required, in which case the data field must contain seven digits or eight digits.</li>
<li>The mandatory check digit is calculated automatically if not provided, otherwise the provided check digit is verified.</li>
<li>Note: by definition, not all six-digit or seven-digit number sequences are valid inputs.</li>
</ul>
<h4 id="examples-36">Examples</h4>
<p>Identical PZN7 symbols, input provided with and without a check digit:</p>
<pre><code>Data:    1234562
Options: includetext
Encoder: pzn
</code></pre>
<pre><code>Data:    123456
Options: includetext
Encoder: pzn
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ8AAABQCAMAAAAwe1ezAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACpQTFRFAAAA////7u7u3d3dmZmZu7u7qqqqzMzMd3d3iIiIVVVVREREZmZmMzMzdlzslwAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAFMSURBVGje7dPRkoMgDAVQAgmE1f3/392Egqh1O3WmfbuMZUKCeIQaAhEFCqH/qI9nJpxyrX+e0zNjhXCoz8y8/zymw7POK8MHH3zwwQcffPDBBx988MEHH3zwwQcffPDBBx988MEHH3zwwQcffPDBBx988MEHH3zwwQcffPD12mjTsm/7XDjMPM7afLGNY9zd32ekUZ13HNc7ec4P+b8lFk5EIpKpsA3TxaSsYn3NnC1uPcUfS6n2Qh7VN9v7PtJ2CRVbfRGPL5o4Q6hXva+yDaXQvvoVX4zVY33lIyqNqcUjT1Wu9lacc9mqH/etWn316n8fjTx8yc5Ot7N++MrjAP1V6iBbbN46q1/YP2u2A20j+cX+bYDqicrjdm7XHd4NnyxtlxbVxeJCv1eTeF2Zis1Z/TTbd5BWf58WR/s0RvXz+3e7pfgUl7tr/AFJ2RxH1S36VAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMlQxMjo0NjowOCswMDowMDY5WUEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTJUMTI6NDY6MDgrMDA6MDBHZOH9AAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<p>Identical PZN8 symbols, input provided with and without a check digit:</p>
<pre><code>Data:    0275808
Options: pzn8 includetext
Encoder: pzn
</code></pre>
<pre><code>Data:    02758089
Options: pzn8 includetext
Encoder: pzn
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK8AAABQCAMAAABYiNWLAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7u3d3dmZmZu7u7qqqqzMzMiIiIREREd3d3ZmZmMzMzawEPbQAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAFoSURBVGje7dPZcoQgEAVQbrMp5v+/N90sikslmQcrL5dynIZGPLI4B8DBuf5Dr19bppr9T31wGcFNT2CqHy3n8e55d65fR6eXXnrppZdeeumll1566aWXXnrppZdeeumll1566aWXXnrppZdeeumll1566aWXXnrppZdeeumll1566f0P7yiH99xyr41oPIFTLysy9Wk/Ebe3idSMzPnz+E+ju/OLfi0+xOCBGGNCDlr1D53SEiKwpJCAtZQNKKVoSwrW3rItzvX+SfnQi1KviGyWaPG9LPWK6NkwgvZsy87x+14Re00pz95QsTp79R6zosKi35dSiiPbY8H2rncrS7YptH1XJAyv1xUvY290ry0B9gm0qcy6hXq2xbot3p9fe01uEx1+2A+dO7zaM9WrZVu8D/iWN651FvUUrRpnfD11qicqt5OGbMtR6tnTM5am85bsm+pCvTi/fypyQ3g52qe7+I/G1fINYMMfLoL3IaQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTJUMTI6NDY6NDIrMDA6MDAWAwj1AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTEyVDEyOjQ2OjQyKzAwOjAwZ16wSQAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h2 id="hibc-symbols">HIBC Symbols</h2>
<p><strong>HIBC barcodes</strong> use a number of general symbologies as carrier symbols for data structured according to the LIC and PAS structured data definitions.</p>
<p>Variants:</p>
<ul>
<li><a href="#hibc-code-39">HIBC Code 39</a> is a variant of <a href="#code-39">Code 39</a>.</li>
<li><a href="#hibc-code-128">HIBC Code 128</a> is a variant of <a href="#code-128">Code 128</a>.</li>
<li><a href="#hibc-pdf417">HIBC PDF417</a> is a variant of <a href="#pdf417">PDF417</a>.</li>
<li><a href="#hibc-micropdf417">HIBC MicroPDF417</a> is a variant of <a href="#micropdf417">MicroPDF417</a>.</li>
<li><a href="#hibc-qr-code">HIBC QR Code</a> is a variant of <a href="#qr-code">QR Code</a>.</li>
<li><a href="#hibc-data-matrix">HIBC Data Matrix</a> is a variant of <a href="#data-matrix">Data Matrix</a>.</li>
<li><a href="#hibc-codablock-f">HIBC Codablock F</a> is a variant of <a href="#codablock-f">Codablock F</a>.</li>
</ul>
<p>Standards: ANSI/HIBC Provider Applications Standard, ANSI/HIBC Supplier Labelling Standard, ANSI/HIBC Positive Identification for Patient Safety, ANSI/HIBC Syntax Standard.</p>
<h4 id="data-and-options-54">Data and Options</h4>
<ul>
<li>The data should be pre-encoded to describe the intended barcode content.</li>
<li>The HIBC <em>+</em> character is prefixed automatically.</li>
<li>The mandatory HIBC check character is automatically appended to the input.</li>
</ul>
<h3 id="hibc-code-39">HIBC Code 39</h3>
<pre><code>Data:    A123BJC5D6E71
Options: includetext
Encoder: hibccode39
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQ8AAABQCAMAAAAwXgCaAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACRQTFRFAAAA////7u7u3d3du7u7qqqqzMzMd3d3iIiImZmZREREZmZmCN/8cwAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAH0SURBVHja7dRbcsMgDEBRxJt6//utEOBn85d8pHOZxiVCVswB7JyIOHFufmR+t+s+IveskTPH3OW7u0Tkcoc7InK6+1lTjtzzL7jH3c9nuD/r83mP+u6vbDzwwAMPPPDAAw888MADDzzwwAMPPPDAAw888MADDzzwwAMPPPDAAw888MADDzzwwAMPPPDAAw888MADDzzwwAMPPPDAAw888MADDzzwwAMPPPDAAw888MADDzzw+O8eqz095PJ9Za3YEXWn8SNyzrKet4j3p0ova4ZzBbn9nrx4hvuzPmu7W43LU9wn8a4Wo82+zzumrNdUeqSmlrTfr6GNgdz/5VpbkFI0SePNW6rlxCbyU8q2KmhmDav++9uHPFIpaVepdRfST7GEYn912InXTo2XoZiPvrY2K/RMHZr1v8ZDl3o3yNnWe65oNpaS+0RzmR5pnJ/aajKAFKSlZDltpORZYWbO+l/jEUL2Esq2FT0FMdbdI49l7cvc4z70vT8nbSRjc+heydaPZYVHBc1s/VD1+l/kMZsZtLHnx15Zu7yuYF/zsWlsgvs5auvGnM8ePfNT747Pe2RdfX0V+q1K27YmebwZW3+fRu0X72usOuHUdK9ImfF+ary+ei1ni9PEKuiZssP2nR6vWjht9jE5H+5xeTXrD2qI/AIUoTBaHvvF4AAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMToxODo1MiswMDowMF1UaX0AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjE6MTg6NTIrMDA6MDAsCdHBAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="hibc-code-128">HIBC Code 128</h3>
<pre><code>Data:    A123BJC5D6E71
Options: includetext
Encoder: hibccode128
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABQCAMAAABrs8qCAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACRQTFRFAAAA////7u7u3d3du7u7qqqqzMzMd3d3iIiImZmZREREZmZmCN/8cwAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAHGSURBVGje7dTresIgDAZgwiEh6/3f75JwsDrdnrnpr4+nIkvTyAt0KSVK5Jd13qd5pXMgRUdpj2n189m0ctMM0v5cYumUR7tYuuTRjKR94/LD58d20fWA94AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACyL9D9txnO0NW4EtL5zvrJyjHV87XUbopPUblbvTOj5z/ujeVn+5912qlNeHa2PomHulNm429LzpusH9x71pIxJIsrjlSI6cq0YfIsSpYZi+r/i/bE5Am0jan902zj0SCxNUHmrINer26VfkytqazgmfarVn/9RBb3D155ljhuYYcHmGfIcuEtHHUuvYWM2+FtLXI0ZHCs8LMnPVfDymFMxU5DrEDU2vfEB4L6Qvr8Vz8mMzZhmVsh+0Ox7jKCo8Klql+/rz+W3ZktJi8juMxdmcdiL6Cvspjm2Jm+8jpepD5DPHMp96Pv0HY1tve03x00uNQ4vHaqr/s1caSc6/dZtrUdodkxv2AZfu/EDlHnZioYMcvzuWbIY9aOZ2LMatcbuP0aLrPMog+AdMAKS+HwA3aAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIxOjIwOjAwKzAwOjAwCB5QxQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMToyMDowMCswMDowMHlD6HkAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="hibc-pdf417">HIBC PDF417</h3>
<pre><code>Data:    A123BJC5D6E71
Options: 
Encoder: hibcpdf417
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGcAAAAhCAMAAADznkW6AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAADQSURBVEjH5ZZBDgJRCEPp/S9tIvRRXelS0WiQAd7k0wGr5qV+S7afhtrx9JQ6UOPuT0VEG+Non6h1gAOqoZPddlSjTGSc5mxyBErhmJT9+XaTFzl74Mi4S0jwUv+bIrfuJMfajbIhca75TrRqF7PiJofzntOnU+VxiuordB0pFznsHvco5+NUGTpqVkXDjnIcUYKT4zMW+jbsZbZ+PK//jBNn7783y46Igv+2sW9yYtvMHA3DYMchcBG4ZW9x9ul2WX/ztLOngTNDvtxzv8p5AJdtBbnhfS+YAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIxOjIwOjUxKzAwOjAw5olVFQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMToyMDo1MSswMDowMJfU7akAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="hibc-micropdf417">HIBC MicroPDF417</h3>
<pre><code>Data:    A123BJC5D6E71
Options: 
Encoder: hibcmicropdf417
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAAAcCAMAAADybteBAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAC7SURBVDjLrZRZDoQwDEPt+196RsVOXdD84EFiafCL0iwFAK6b661P8HtBFv0hQ4uGo7hY8nBkw9Y2HMwpFOm4Hhw/ivYfHO8+LFN6eGSn5ZwEkl7CXDomzoS95Bhc7H7S78DJ0HacmysawRW+aqFQQ9txYZXmt4ElN1YXmWO6G8JDwcHcY249Pmry0LbclDqbD7ERVWdrSy4m52g9d13E6QPlLRdTEi3mVOSspbbgnN09pXMQ73GdRFXcBw8qAq+bI2CMAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIxOjIxOjMxKzAwOjAwzyQ3rAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMToyMTozMSswMDowML55jxAAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="hibc-qr-code">HIBC QR Code</h3>
<pre><code>Data:    A123BJC5D6E71
Options: 
Encoder: hibcqrcode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAADiSURBVEjHrZSBDoQgDEPh/3/aSzyl7aqB4pK7KOOZMbq2RtF/cf2Pt/YWk0i/40zj+5kvaxHCqQar4zO4+gUyNtcWfIVwidiWXQSbzBv1KUdYCf73qrEJpJfQCy35ANEiVDLcjP9qgPiD67VywRmihY1B5hanSBWKikUFlCFuVF2R9/FDhGXucPp0gKCdsjGpQKHhywgXwkeuZkIdW0CsgYIq6gQniBlTQVA41i4mEA6Sn1ximcol5MmOHqQfIzrM1aBEpNsIbuQhJ/FvIlpINdoUUSvykodMgLBgWBx28teRA+F7BL0VNg0PAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIxOjIyOjIyKzAwOjAw2VGWrAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMToyMjoyMiswMDowMKgMLhAAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="hibc-data-matrix">HIBC Data Matrix</h3>
<pre><code>Data:    A123BJC5D6E71
Options: 
Encoder: hibcdatamatrix
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACOSURBVDjLrZJJDsAwCAPN/z/dQ9qAnQUfihSlgilbDCCiPz6EeUeMACE2NEy/P3vLWdAOTP8kW6g2mKB6HGhNzx7AhWriNUw9NZCOz4s8PMsRqmNnySztQpxenqMuoIU4UAHqqYVOApYfDCjpzeiQPTUQi0LlTBNcIR2eF0DabCCVvmYX/gqpOFSILvSTPYumAlX/lLH+AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIxOjIzOjE4KzAwOjAwHGylPwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMToyMzoxOCswMDowMG0xHYMAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="hibc-codablock-f">HIBC Codablock F</h3>
<pre><code>Data:    A123BJC5D6E71
Options: 
Encoder: hibccodablockf
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJEAAAAiCAMAAABoWMvKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACMSURBVFjD7ZUxEsAgCASP/386UQS0iqm0WCZjCKBZzgLpQjPZa2qPf3qoOT2hyJqXZkB9MaVvsXp5HCEbp0bUt1m+PdV9iCCCCCKINokOzo1vjSZhqumKpzBaeh5bI1Eilj7jD1oEhwgiiCCC6DfROduZtMv8rLbmgv1oSVq6xlzevTWIIIIIIojuswdF8wgHD5ABBQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMToyMzo0NiswMDowMASz0AYAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjE6MjM6NDYrMDA6MDB17mi6AAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h2 id="less-used-symbols">Less-used Symbols</h2>
<h3 id="bc412">BC412</h3>
<p>The <strong>BC412</strong> barcode symbology is single width, variable length barcode that is used for silicon wafer identification by the semiconductor manufacturing industry.</p>
<p>Also known as: BC412 SEMI, BC412 IBM.</p>
<h4 id="data-and-options-55">Data and Options</h4>
<ul>
<li>The data field can hold any of the following:
<ul>
<li>Numbers 0-9</li>
<li>Capital letters A-Z, excluding O</li>
</ul></li>
<li>The <strong>includestartstop</strong> option enables the display of start and stop bars.</li>
<li>The <strong>includecheck</strong> option calculates the check character.</li>
<li>The <strong>includecheckintext</strong> option makes the calculated checksum appear in the human readable text.</li>
<li>The <strong>semi</strong> option enables conformance to the SEMI standard by enabling start and stop bars as well as a check character.</li>
<li>The <strong>inkspread</strong> option can be used to adjust the width of the bars.</li>
</ul>
<h4 id="examples-37">Examples</h4>
<pre><code>Data:    BC412
Options: includecheck
Encoder: bc412
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAABQCAMAAACUPS0lAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////3d3dmZmZu7u7qqqqzMzMiIiI7u7uVVVVd3d3REREZmZmXVAA8AAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAChSURBVFjD7dFBDsMgDARAFhtMKf9/b0mxCYdWau9rKYoRO4YoKSEB/qx+vfbKu4R7851OlJSUlJSUlJSUlJSUlJSUlP/KLFoqvKqZ5Fi0h0Zb+m5hRcoa0ecisrOxnTG942eLiyxZe4xuuKvqZ3ntuFQ1F3Jsz4t8kbVg3xZ6DGs7bPJJOkTSZ+890kX2+UAe8RWQMWJKnfkB/x1HtYxf6wXskw4MCU9OjwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxMjozNjo1MiswMDowMNpaqRoAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTI6MzY6NTIrMDA6MDCrBxGmAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<pre><code>Data:    BC412
Options: includestartstop
Encoder: bc412
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABICAMAAABx5AOBAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAA6SURBVFjD7cyBCQAwCAOw+v/TGyjuiAURK2KSqtyq6c49dpuUesf9CAAAAAAAAAAAAAAAAAAA4AfgAA7EC9E8FuqcAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDEyOjM3OjM1KzAwOjAwNlD1LQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxMjozNzozNSswMDowMEcNTZEAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<pre><code>Data:    BC412
Options: semi
Encoder: bc412
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABICAMAAABr2OMPAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABASURBVFjD7cxBCgAgCATA9f+fLjCya/dBxBVxkqrsqtOde9ztpNQc5+PZA4PBYDAYDAaDwWAwGAwGg8FgsF9sAWC4DhE1tDMrAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDEyOjM3OjU2KzAwOjAwwdfmNwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxMjozNzo1NiswMDowMLCKXosAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="channel-code">Channel Code</h3>
<p><strong>Channel Code</strong> is a linear, continuous, self-checking, bidirectional barcode symbology that encodes between two and seven digits in a short space.</p>
<p>Standards: ANSI/AIM BC12 - USS Channel Code.</p>
<h4 id="data-and-options-56">Data and Options</h4>
<ul>
<li>The data field can hold zero prefixed values from any of the following ranges:
<ul>
<li>Channel 3: <code>00-26</code></li>
<li>Channel 4: <code>000-292</code></li>
<li>Channel 5: <code>0000-3493</code></li>
<li>Channel 6: <code>00000-44072</code></li>
<li>Channel 7: <code>000000-576688</code></li>
<li>Channel 8: <code>0000000-7742862</code></li>
</ul></li>
<li>The channel is determined to be one more than the number of digits given in the data field.</li>
<li>The <strong>shortfinder</strong> option generates a symbol with a shortened finder pattern.</li>
<li>The <strong>includecheck</strong> option appends an optional check bar suffix.</li>
</ul>
<h4 id="examples-38">Examples</h4>
<p>A channel 3 symbol holding the value five:</p>
<pre><code>Data:    05
Options: includetext
Encoder: channelcode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAABQCAMAAADMQr48AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABtQTFRFAAAA////qqqqiIiImZmZu7u7d3d37u7u3d3do5ZDEgAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABRSURBVDjL7c1RDoAgDAPQdhvD+59YGWLEE/hRIA15WTOAzwU5ApDJZDLZn2wdzK95NDIzW2GZ18s1WBnkNeHh9rVZ2Lu869sOi1eXvY88KnkCBUIDjzsOHq0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTI6Mzk6NTArMDA6MDC8zuO+AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEyOjM5OjUwKzAwOjAwzZNbAgAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<p>A channel 4 symbol holding the value 123:</p>
<pre><code>Data:    123
Options: includetext
Encoder: channelcode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAABQCAMAAADFqR5GAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACRQTFRFAAAA////7u7uqqqqd3d3u7u7iIiImZmZzMzMZmZmRERE3d3drP8lPAAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABdSURBVDjL7c0BCsAgCAXQTCvb7n/ffa2gusFAI7VnYEq0jqWEMmp4eHh4ePhv3CLnMUOwFOTKjdF7nn+KOa74S04nUh+LXq48FtTTJ2PR8tZ7I31EOvp97x5vtvwBUdkEpd5qH/gAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTI6NDA6MzArMDA6MDCvj9RwAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEyOjQwOjMwKzAwOjAw3tJszAAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<p>A channel 4 symbol holding the value five including optional check bars:</p>
<pre><code>Data:    005
Options: includetext includecheck
Encoder: channelcode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAABQCAMAAACgROw5AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABtQTFRFAAAA////7u7uqqqqiIiImZmZu7u7d3d33d3d+P4yLAAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABjSURBVEjH7Y5BDsAgCAQFQfz/i0uxiofWY0+LOpLNRCyF1rrhdEQz+jgwYMCAAQMGDBgwfjA4UucyonturyraJs2szTwN2bZRVhpK1CZFpZ6N8eRpCm2DPn5a9WUKMSc7r/gCQGEGQoTT2Z4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTI6NDA6NTgrMDA6MDBaD5OQAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEyOjQwOjU4KzAwOjAwK1IrLAAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<p>A channel 3 symbol holding the value 26 with a shorteded finder pattern:</p>
<pre><code>Data:    26
Options: shortfinder includetext
Encoder: channelcode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAABQCAMAAADx0N9aAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACFQTFRFAAAA////iIiIqqqqmZmZu7u7d3d3zMzMREREZmZm7u7uqbfa1QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABSSURBVDjL7c1bFoAgCARQRoip9r/gYOy0hL7AB15FNUM3wEwrG4/H47/d0a60PFzJoaMDyJq5SzpYW+HO1+zyJNa2iFAv88y8gLuexfeVrtV4AKkLAvmMMafNAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDEyOjQxOjMzKzAwOjAwcaWl0wAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxMjo0MTozMyswMDowMAD4HW8AAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="codabar">Codabar</h3>
<p><strong>Codabar</strong> is a linear, discrete, self-checking, bidirectional barcode symbology that can encode digits, six symbols and four delimiter characters. It is primarily used by libraries and blood banks, photo labs and FedEx airbills.</p>
<p>Also known as: Rationalized Codabar, Ames Code, NW-7, USD-4, USS-Codabar, ABC Codabar, Monarch, Code 2 of 7.</p>
<p>Standards: ANSI/AIM BC3 - USS Codabar, BS EN 798.</p>
<h4 id="data-and-options-57">Data and Options</h4>
<ul>
<li>The data field must start and stop with one of the following delimiters
<ul>
<li><code>ABCD</code></li>
<li><code>TNE*</code> (with the <em>altstartstop</em> option)</li>
</ul></li>
<li>The data field can otherwise hold any of the following
<ul>
<li>Digits 0-9</li>
<li>Symbols <code>-$:/.+</code></li>
</ul></li>
<li>The <strong>altstartstop</strong> option specifies that the alternative set of delimiter characters is in use.</li>
<li>The <strong>includecheck</strong> option calculates the check digit.</li>
<li>The <strong>includecheckintext</strong> option makes the calculated check characters appear in the human readable text.</li>
</ul>
<h4 id="example-15">Example</h4>
<pre><code>Data:    A0123456789B
Options: includecheck includetext includecheckintext
Encoder: rationalizedCodabar
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ8AAABQCAMAAAAwe1ezAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7uu7u7qqqqzMzMiIiImZmZd3d3VVVVREREZmZm3d3dRcBEcAAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAF6SURBVGje7ZONksMgCITBH/Auef/nPZO0sLbp9B5gTTtDcF0+xYioiKjq9b8ePXPnI5nXxzvmHpmcCx/9PCtvK1f/pBGsRz7ykY985CMf+chHPvKRj3zkIx/5yEc+8pGPfOQjH/nIRz7ykY985CMf+chHPvKRj3zkIx/5yEc+8pGPfNdYlRpVdOG7RimrNude+d5nj7UxV175UC/XS21dczTzGvGIUK15izzEWn5CNMayIDS/Y2yx1tO/Qwz+uwPShDQDPjt/j1Gz3IwGyDK2FKGg4qZVHTQhw1roPyAv2ruXxQigKpTokB89sykytzgzb9iWpG2thX7W3e78h/ZgFR21wgF+5OvZ0tnUWGHrJiI/d2A3abV5HPHS3O78D6LnkclBNBan2/4ueNiXag75cHLoKVq28/euR/8j+aws8+qWDdbD9+Hb9qzR8Y47fh/7lvcG8mVe+Nxctnp+H6HpLY4J/euMR57fyyhFv469/CPf7zXgX/bvpf4AUXEf1eYb8voAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTI6NDI6NTQrMDA6MDCZWinZAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEyOjQyOjU0KzAwOjAw6AeRZQAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="codablock-f">Codablock F</h3>
<p>The <strong>Codablock F</strong> barcode symbology is 2D stacked-linear barcode that consists of a number of stacked <a href="#code-128">Code 128</a> symbols. It can encode full 256 character extended-ASCII.</p>
<p>Variants:</p>
<ul>
<li><a href="#hibc-symbols">HIBC Codablock F</a> is a variant of Codablock F that should be used when encoding HIBC formatted data.</li>
</ul>
<p>Standards: USS Codablock F.</p>
<h4 id="data-and-options-58">Data and Options</h4>
<ul>
<li>The data field can consist of any extended-ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li><em>FNC4</em> function characters will be inserted automatically to allow the encoding of extended ASCII characters.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</li>
<li>When the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by <code>^FNC1</code> or <code>^FNC3</code>.</li>
<li>The <strong>columns</strong> option specifies the number of columns in the symbol, default 8.</li>
<li>The <strong>rows</strong> option specifies the number of rows in the symbol, between 2 and 44.</li>
<li>If <strong>rows</strong> is unspecified the encoder will default to the smallest number of rows that can hold the given data.</li>
<li>The <strong>raw</strong> option denotes that the data field is providing the input as a pre-encoded codewords in <code>^NNN</code> format, suitable for direct low-level encoding.</li>
<li>The <strong>rowheight</strong> option specifies the height of the bars in each row in points. The default is 10.</li>
<li>The <strong>sepheight</strong> option specifies the height of the separator bars enclosing the rows in points. The default is 1.</li>
</ul>
<h4 id="examples-39">Examples</h4>
<pre><code>Data:    Codablock F
Options: 
Encoder: codablockf
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJEAAAAXCAMAAAA8713UAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABvSURBVEjH7ZUxFsAgCEOT+1+6Fgiy1a0O4dnXGiX94CBwYRBcgXfkNKQUQ60H9RrLUhE7y6T2pszOnmmAvKFP/dZEJjKRiUx0RvTjvfHdI3TFmMujOpVGZbTjNteU3Rxu6+752amZyEQmMpGJ7osHi88F1cZvgl0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTM6Mjc6NDErMDA6MDDUwt5iAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEzOjI3OjQxKzAwOjAwpZ9m3gAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<pre><code>Data:    CODABLOCK F 34567890123456789010040digit
Options: columns=8 rows=5
Encoder: codablockf
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJEAAAA4CAMAAADKFeo3AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAADFSURBVFjD7ZfLDsMgDATX///TbQJ+hCoqnOAwViJggTDeHCykA8Nk39D1tGFKutX+qjdqXcWET8ewbhm3lRnzV7HCIIIIIoggmiTaWDf+eySXrKZQMktbnvm2r3ijOCedS+9VhhBBBBFEEK0RnVlFLKS0K9QsjDHzasHLttFPC7MhgggiiCBaIdoXMx5l3so7medcs4g09RQG1bt5RP0BEEEEEUQQrRLti4n7mldD/TindTXkviCreBZdiCCCCCKIZogOiw/r1g0fyIdtVwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxMzoyODozNyswMDowMEzcucwAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTM6Mjg6MzcrMDA6MDA9gQFwAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<pre><code>Data:    Short bars, fat seperators
Options: columns=10 rows=8 rowheight=6 sepheight=2
Encoder: codablockf
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKcAAABCCAMAAAAFQTbvAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGje7ZjbCoYwDIOz93/p/7Aed6PIJi0kKLrajQ8zCApQmzUwvsLvmMN/CV6VE3LB8IZ5ymMbxinrtLAY4gPMJeRu2IrSSU5yknMzZzV15wy+w0wPpkZ/tF8vsBXd92H91mBDN3ydpkzkJCc5T3JWU3fOaGBKvQsD027QHI0hrO/BAhG5EKq+PjnJSc6TnNXUnTNZBYtFT7IlIXPq7amGPCYnOcl5kLOaunOuvh+w9bo6/KOGnOQk5znOaurOuZoSUgx4yXfoh8vN/UlOcpLzGWc1deeMrz/8WcGrvgsQ7u1PcpKTnA85q6k7Z/ZdrT+XkLnB/oNbJznJSc7dnNRGfQDsEA0JeJLVCgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxMzoyOToxNyswMDowMOE71Y8AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTM6Mjk6MTcrMDA6MDCQZm0zAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="code-11">Code 11</h3>
<p><strong>Code 11</strong> is a linear, discrete, non-self-checking, bidirectional, numeric barcode symbology that is primarily used for labelling telecommunication equipment.</p>
<p>Also known as: USD-8.</p>
<h4 id="data-and-options-59">Data and Options</h4>
<ul>
<li>The data consists of digits and the dash character <em>-</em>.</li>
<li>The <strong>includecheck</strong> option calculates the check digits.</li>
<li>For less than 10 data digits a single check digit is used.</li>
<li>For 10 or more data digits two check digits are used.</li>
</ul>
<h4 id="example-16">Example</h4>
<pre><code>Data:    0123456789
Options: includecheck includetext includecheckintext
Encoder: code11
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIUAAABQCAMAAAAA90aSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7u3d3dqqqqiIiImZmZu7u7d3d3VVVVREREZmZmzMzMBVSrXgAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAFLSURBVGje7ZPblsMgCEXFCNqJ//+9YxNAYtqseZ51bJpQLsdNpClRSomI0vlJ+tU7Bd8tZ+a+Y2q5fa1faqMWfd8BFKAABShAAQpQgAIUoAAFKEABClCAAhSgAAUoQAEKUIACFKAABShAAQpQgAIUoAAFKP4VxblMwX7Z/bRyvudQqNxuGu8Krc++5xetNEULSz2eraqHixSNuUX5peHWQqJGf1rbtUJEo10t159aS9OH1HGNVU18PJuHzWILz1DtQVA82q66rh9LbxRybBspRh8O1Lp5LMzC2pOU4hxGVErRPMm0X/Vbp2U9UvT56jJbZwFSfUOVFxdx72JHLXzRd62/nUiP56eVtbK4rzm/LGlUjivmhRN5oLDpkX0/NfucNZkTte26d3NfHmNs4Payx3QW64XzRf9xOvUf9Hlt+dHX71FXy9vi+aD1C5t2GGWf+/rkAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDEzOjMwOjEzKzAwOjAwKO8FlgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxMzozMDoxMyswMDowMFmyvSoAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="code-16k">Code 16K</h3>
<p>The <strong>Code 16K</strong> barcode symbology is 2D stacked-linear barcode that can encode full 256 character extended-ASCII with the use of the <em>FNC4</em> shift character.</p>
<p>Also known as: USS-16K</p>
<p>Standards: ANSI/AIM BC7 - USS Code 16K, BS EN 12323.</p>
<h4 id="data-and-options-60">Data and Options</h4>
<ul>
<li>The data field can consist of any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li><em>FNC4</em> function characters will be inserted automatically to allow the encoding of extended ASCII characters.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</li>
<li>When the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by <code>^FNC1</code> through <code>^FNC3</code>.</li>
<li>The <strong>mode</strong> option specifies the mode for the symbol. It is usual to leave this unspecified in which case the most appropriate mode that results in the shortest symbol is automatically selected based in the input data.
<ul>
<li><code>mode=0</code> - Starting code set A</li>
<li><code>mode=1</code> - Starting code set B</li>
<li><code>mode=2</code> - Starting code set C</li>
<li><code>mode=3</code> - Starting code set B with implied <em>FNC1</em></li>
<li><code>mode=4</code> - Starting code set C with implied <em>FNC1</em></li>
<li><code>mode=5</code> - Starting code set C with implied <em>Shift B</em></li>
<li><code>mode=6</code> - Starting code set C with implied <em>Double Shift B</em></li>
</ul></li>
<li>The <strong>pos</strong> option specifies this symbol to be part of multi-part structured data. For example <code>pos=25</code> specifies this to be the second symbol in a group of five symbols.</li>
<li>The <strong>rows</strong> option specifies the number of rows in the symbol, between two and sixteen.</li>
<li>If <strong>rows</strong> is unspecified the encoder will default to the smallest number of rows that can hold the given data.</li>
<li>The <strong>raw</strong> option denotes that the data field is providing the input as a pre-encoded codewords in <code>^NNN</code> format, suitable for direct low-level encoding.</li>
<li>The <strong>rowheight</strong> option specifies the height of the bars in each row in points. The default is 10.</li>
<li>The <strong>sepheight</strong> option specifies the height of the separator bars enclosing the rows in points. The default is 1.</li>
</ul>
<h4 id="examples-40">Examples</h4>
<pre><code>Data:    Abcd-1234567890-wxyZ
Options: 
Encoder: code16k
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFEAAAAlCAMAAAAN4vXTAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAB7SURBVEjH7ZVLCgAhDEOb+196sJ+ozGogs0tFaIu+plAxQm6gZRC5VpA7Orvc9OtIxmCqsnPBRBNFRMV8X0TKOkqWi9E0wtDKwaABJpqoIv4w4THFLq3YtUvz0QTuvkw0UUeUTzhf2+jtulscTvHshB/R658x0cSPRLk9GmYF4pISzJYAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTM6Mzg6NDgrMDA6MDBx3x/8AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEzOjM4OjQ4KzAwOjAwAIKnQAAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<pre><code>Data:    Code 16K
Options: rows=10
Encoder: code16k
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFEAAABbCAMAAAA8ypliAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAC9SURBVFjD7ZbBCsMwDEOl///p0VluV9hhc+WbAgXHdZ9dkEgA++K53hvwyFSA69GWVYBKqxpKVMQQQ3QRHfq+EdVFjalBNI3iLsHnv6DrGWKINuKCwnuam8/+CBliiD6iXeF9jAxnFC/EED3EBYXjkQvPu1SIITqICwqnMlMXtotDDNFAXFA4etShC0MM0Uj0K7wtOJyx4hBDtBEXFM4n5wy/3KRCDHFOtCu8e/ziN9m1PtHb67AKMcQZ0b5eECUM1P2vDXoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTM6Mzk6MjQrMDA6MDCf0hcxAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEzOjM5OjI0KzAwOjAw7o+vjQAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<pre><code>Data:    Short bars, fat seperators
Options: rows=8 rowheight=5 sepheight=2
Encoder: code16k
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFEAAAA6CAMAAAD/YkWdAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAADASURBVFjD7ZZJDsAgCEU/9790UxmtnRa4IMEuKg4vfgpYoEAja8PAeLg/OuN1muBhiEmylidkoexuYjox40tvJuq5VROr1nGwaJGqLgiq1WtNTCeWiJ5wbrg49UhwTJSsFtlkE7OJBaInVNG7nLn6QvbDJ5aK28QcYonogeWMiZh8EHLFhsLVTUvONDGHWCJ6CJoFrmUqxXjrAr6lianEEtFjv20f+h5UUxM3EStEj9TUP/qkvFpttoRpYhqxQDsABwsHUwReLpwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTM6NDA6MDArMDA6MDD8lgoWAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEzOjQwOjAwKzAwOjAwjcuyqgAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="code-25">Code 25</h3>
<p><strong>Code 2 of 5</strong> is a simple low density numeric barcode symbology.</p>
<p>Also known as: Code 25, Industrial 2 of 5, Standard 2 of 5</p>
<p>Variants:</p>
<ul>
<li><a href="#iata-2-of-5">IATA 2 of 5</a>, Computer Identics 2 of 5.</li>
<li><a href="#datalogic-2-of-5">Datalogic 2 of 5</a>.</li>
<li><a href="#matrix-2-of-5">Matrix 2 of 5</a>.</li>
<li><a href="#coop-2-of-5">COOP 2 of 5</a>.</li>
</ul>
<h4 id="data-and-options-61">Data and Options</h4>
<ul>
<li>The data consists of any number of digits.</li>
<li>The <strong>includecheck</strong> option calculates the check digit.</li>
<li>The <strong>version</strong> option determines which variant to use:
<ul>
<li><code>version=industrial</code> (default) - Industrial 2 of 5.</li>
<li><code>version=iata</code> - <em>Deprecated: Use <a href="#iata-2-of-5">IATA 2 of 5</a></em></li>
<li><code>version=datalogic</code> - <em>Deprecated: Use <a href="#datalogic-2-of-5">Datalogic 2 of 5</a></em></li>
<li><code>version=matrix</code> - <em>Deprecated: Use <a href="#matrix-2-of-5">Matrix 2 of 5</a></em></li>
<li><code>version=coop</code> - <em>Deprecated: Use <a href="#coop-2-of-5">COOP 2 of 5</a></em></li>
</ul></li>
</ul>
<h4 id="examples-41">Examples</h4>
<pre><code>Data:    01234567
Options: 
Encoder: code2of5
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIMAAABICAMAAADibLYjAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABVSURBVGje7c4xCgAgDAPA+P9PCzpoqavbUTqkpHBJMtbuOaneTk5p9c7ru3fvZhgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGD4YJiFlDKlG/SbGAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDEzOjQ2OjA2KzAwOjAwklhPawAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxMzo0NjowNiswMDowMOMF99cAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="dotcode">DotCode</h3>
<p>The <strong>DotCode</strong> symbology is 2D matrix-style barcode that can encode full 256 character extended-ASCII.</p>
<p>Standards: AIM - ISS DotCode.</p>
<h4 id="data-and-options-62">Data and Options</h4>
<ul>
<li>The data field can contain any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value. This is useful for specifying unprintable characters.</li>
<li>When the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by <code>^FNC1</code>, <code>^FNC2</code>, <code>^FNC3</code>.</li>
<li><em>Deprecated: Use only if performance is a concern.</em> The <strong>fast</strong> option is used to enable the optional high-speed symbol masking algorithm.</li>
<li>The <strong>ratio</strong> is used to specify the aspect ratio of the symbol. The default is 1.5.</li>
<li>The <strong>columns</strong> and <strong>rows</strong> options are used to specify the size of the symbol. When these are not specified a symbol is generated that maintains the selected aspect ratio.</li>
</ul>
<h4 id="examples-42">Examples</h4>
<pre><code>Data:    This is DotCode
Options: inkspread=0.16
Encoder: dotcode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABMCAMAAACChsOvAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX///8AAABVwtN+AAAAAWJLR0QAiAUdSAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+IFFg4XAsvZX6oAAAFZSURBVGjexZdBEsMgDAOT/3+6M+nkUKgiySaCCw0RFt2Ca47jPI+r3f3YxvFR7/ffT3c/+/2Oj3q3zxvGkUrBUXNN5uf/+LCfihHEixtmkKqbgi1Cnadue4ZZnhc3jCN9FLOkgOZznbe9GU6myxvGkUpBupuItXq68jDvM3wXqXv43fnzuJfeED6Gs5xP24ZxpKXg1U3EMCB81WOyzzCLVK9HPHO8WA3TsuMTN8wiXXeuBDMDJ8bzrJvexw3jSAFnz8Rd7Pi1XYzuz7HPMIuUidWguu4Zh4pNxhs3zCJ1L5ndS6p7ja6W+7Aufd0wi7RbNCEdWky3LEQ6GD9uGEfaClLfRDVM5bIkbphFWk3i7qLQ168+q+N5wzhS/tLQ6Uncu26pZSScFzeMI7WCMp36p61iYzq1LNlnmEFaLXrVRbK6tFsO0vdxwyzSdfcFVb+mfG/n0dcM00g/gpIHLdggqFIAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDUtMjJUMTQ6MjM6MDIrMDE6MDBv4r6/AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTA1LTIyVDE0OjIzOjAyKzAxOjAwHr8GAwAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE4LTA1LTIwdp21zgAAADF0RVh0U291cmNlAGh0dHBzOi8vdGhlLWJ1cnRvbnMueHl6L2JhcmNvZGUtZ2VuZXJhdG9yL0v1MBUAAAAASUVORK5CYII=" /></p>
<h3 id="ultracode">Ultracode</h3>
<p>The <strong>Ultracode</strong> symbology is a colour, 2D matrix-style barcode symbology that can encode full 256 character extended-ASCII.</p>
<p>Standards: AIM ISS - Ultracode.</p>
<h4 id="data-and-options-63">Data and Options</h4>
<ul>
<li>The data field can contain any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</li>
<li>When the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by <code>^FNC1</code>, <code>^FNC3</code>.</li>
<li>The <strong>eclevel</strong> option is used to specify the error correction level:
<ul>
<li><code>eclevel=EC0</code> - Error detection only</li>
<li><code>eclevel=EC1</code> - Low</li>
<li><code>eclevel=EC2</code> - Medium (default)</li>
<li><code>eclevel=EC3</code></li>
<li><code>eclevel=EC4</code></li>
<li><code>eclevel=EC5</code> - Highest</li>
</ul></li>
</ul>
<h4 id="examples-43">Examples</h4>
<pre><code>Data:    Nice colours!
Options: eclevel=EC3
Encoder: ultracode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA0CAMAAAAqqk/TAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAElBMVEUjHyD/////8gCNxz/sAIwAru8X7k/pAAAAAWJLR0QB/wIt3gAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EKDhYkJoDttowAAADASURBVFjD7ZbLCsUgEEP7sP//y51AD4TRu7rdpWejIzWCCWO37eMV9uIomJ+F6lFovIrjYTxobRiqkwWFRBDkg9OgdvFOsqBEuFRM6RfvG1n3A1UnCwoPtuaEuwtgjod86XKYIGF2gzzIXDwHXQsml8MEEXpjTBWkIbgpBLebMH4wvXphgsKD7c3TG0BvtN5EpmCHCa5+llYPExtXzWNqsGGC3RQPMRuYYwRibliyYP9Z8hD7xRN4f/x9TBb8+Isb974igQ+QH4cAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMTAtMTRUMjI6MzY6MzgrMDE6MDA5QpRMAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTEwLTE0VDIyOjM2OjM4KzAxOjAwSB8s8AAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE3LTA3LTEwAfFebwAAADF0RVh0U291cmNlAGh0dHBzOi8vdGhlLWJ1cnRvbnMueHl6L2JhcmNvZGUtZ2VuZXJhdG9yL0v1MBUAAAAASUVORK5CYII=" /></p>
<h3 id="iata-2-of-5">IATA 2 of 5</h3>
<p><strong>IATA 2 of 5</strong> is a variant of the <a href="#code-25">Code 2 of 5</a> barcode symbology.</p>
<p>Also known as: Computer Identics 2 of 5.</p>
<p>Variants:</p>
<ul>
<li><a href="#code-25">Industrial 2 of 5</a>, Standard 2 of 5.</li>
<li><a href="#datalogic-2-of-5">Datalogic 2 of 5</a>.</li>
<li><a href="#matrix-2-of-5">Matrix 2 of 5</a>.</li>
<li><a href="#coop-2-of-5">COOP 2 of 5</a>.</li>
</ul>
<h4 id="data-and-options-64">Data and Options</h4>
<ul>
<li>The data consists of any number of digits.</li>
<li>The <strong>includecheck</strong> option calculates the check digit.</li>
</ul>
<h4 id="examples-44">Examples</h4>
<pre><code>Data:    01234567
Options: includetext includecheck includecheckintext
Encoder: iata2of5
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIcAAABQCAMAAAAEApavAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7u3d3dqqqqiIiImZmZu7u7d3d3VVVVREREZmZmzMzMBVSrXgAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEZSURBVGje7dPRkoMgDAVQghDoyv9/7zotxXtFdnzbl0tbK5OEHAsNwfor9M/3atM8UNacc1c954bbfkEOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEOO/3F8R+jXMO5in39GjGf8zLmv3mzONVptVHy+UvYyIpYqTCwnTxCjmcUXpNZ6KYTMn1p3WIX6nZz8fo9RMOm4r1SCs4ypnFYadzKHMu43HP5ud+8waxSrDSOYmj3DL+ApkQRdl37PHC1RRYQnyVcyxA5vXoSWjr/25cKgzFKyUwy2xmknuMFqX/jc+L6fKzQ+Yc7ndNuhc6VYPA44Pg5u0uqc9n/jk7HFx7G2zpz6/QIY2BTYFyMwwQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxMzo0Nzo1OCswMDowMGVFUWwAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTM6NDc6NTgrMDA6MDAUGOnQAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="matrix-2-of-5">Matrix 2 of 5</h3>
<p><strong>Matrix 2 of 5</strong> is a variant of the <a href="#code-25">Code 2 of 5</a> barcode symbology.</p>
<p>Variants:</p>
<ul>
<li><a href="#code-25">Industrial 2 of 5</a>, Standard 2 of 5.</li>
<li><a href="#iata-2-of-5">IATA 2 of 5</a>, Computer Identics 2 of 5.</li>
<li><a href="#datalogic-2-of-5">Datalogic 2 of 5</a>.</li>
<li><a href="#coop-2-of-5">COOP 2 of 5</a>.</li>
</ul>
<h4 id="data-and-options-65">Data and Options</h4>
<ul>
<li>The data consists of any number of digits.</li>
<li>The <strong>includecheck</strong> option calculates the check digit.</li>
</ul>
<h3 id="datalogic-2-of-5">Datalogic 2 of 5</h3>
<p><strong>Datalogic 2 of 5</strong> is a variant of the <a href="#code-25">Code 2 of 5</a> barcode symbology.</p>
<p>Variants:</p>
<ul>
<li><a href="#code-25">Industrial 2 of 5</a>, Standard 2 of 5.</li>
<li><a href="#iata-2-of-5">IATA 2 of 5</a>, Computer Identics 2 of 5.</li>
<li><a href="#matrix-2-of-5">Matrix 2 of 5</a>.</li>
<li><a href="#coop-2-of-5">COOP 2 of 5</a>.</li>
</ul>
<h4 id="data-and-options-66">Data and Options</h4>
<ul>
<li>The data consists of any number of digits.</li>
<li>The <strong>includecheck</strong> option calculates the check digit.</li>
</ul>
<h3 id="coop-2-of-5">COOP 2 of 5</h3>
<p><strong>COOP 2 of 5</strong> is a variant of the <a href="#code-25">Code 2 of 5</a> barcode symbology.</p>
<p>Variants:</p>
<ul>
<li><a href="#code-25">Industrial 2 of 5</a>, Standard 2 of 5.</li>
<li><a href="#iata-2-of-5">IATA 2 of 5</a>, Computer Identics 2 of 5.</li>
<li><a href="#datalogic-2-of-5">Datalogic 2 of 5</a>.</li>
<li><a href="#matrix-2-of-5">Matrix 2 of 5</a>.</li>
</ul>
<h4 id="data-and-options-67">Data and Options</h4>
<ul>
<li>The data consists of any number of digits.</li>
<li>The <strong>includecheck</strong> option calculates the check digit.</li>
</ul>
<h3 id="code-49">Code 49</h3>
<p>The <strong>Code 49</strong> barcode symbology is 2D stacked-linear barcode that can encode 128 character ASCII.</p>
<p>Also known as: USS-49.</p>
<p>Standards: ANSI/AIM BC6 - USS Code 49.</p>
<h4 id="data-and-options-68">Data and Options</h4>
<ul>
<li>The input can consist of any ASCII data.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</li>
<li>When the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by <code>^FNC1</code> through <code>^FNC3</code>.</li>
<li>The <strong>mode</strong> option specifies the mode for the symbol. It is usual to leave this unspecified in which case the most appropriate mode that results in the shortest symbol is automatically selected based in the input data.
<ul>
<li><code>mode=0</code> - regular alphanumeric mode</li>
<li><code>mode=1</code> - append mode</li>
<li><code>mode=2</code> - numeric mode</li>
<li><code>mode=3</code> - group alphanumeric mode</li>
<li><code>mode=4</code> - alphanumeric mode starting shift 1</li>
<li><code>mode=5</code> - alphanumeric mode starting shift 2</li>
<li><code>mode=6</code> - reserved</li>
</ul></li>
<li>The <strong>pos</strong> option specifies this symbol to be part of multi-part structured data, i.e. selecting <code>mode=3</code>. For example <code>pos=25</code> specifies this to be the second symbol in a group of five symbols.</li>
<li>The <strong>rows</strong> option specifies the number of rows in the symbol, between <em>2</em> and <em>8</em>.</li>
<li>If <strong>rows</strong> is unspecified the encoder will default to the smallest number of rows that can hold the given data.</li>
<li>The <strong>rowheight</strong> option specifies the height of the bars in each row in points. The default is <em>10</em>.</li>
<li>The <strong>sepheight</strong> option specifies the height of the separator bars enclosing the rows in points. The default is <em>1</em>.</li>
</ul>
<h4 id="examples-45">Examples</h4>
<pre><code>Data:    MULTIPLE ROWS IN CODE 49
Options: 
Encoder: code49
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFEAAAAuCAMAAABnJQUQAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACWSURBVEjH7ZbBDoAgDEO7//9po+sKJHpQx607EBzzUZI1ALRHKBCZOHPXnGNkEXL9SlZlZSJYwi8TTfxP7OnvVSO3qgHcdmhOvfXnWMkFE01sJO7ocFmuvJbSaEP5k/sPp2JxqYkmdhB3dHhI5nJvyGUh0WDhZNbbU5to4lfijg7XxaJ7ZRI/XlolrSZ4PrWJJr4itscBCQ4GvfA37HsAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTM6NTc6MDErMDA6MDB5s8UbAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEzOjU3OjAxKzAwOjAwCO59pwAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<pre><code>Data:    CODE 49
Options: rows=8
Encoder: code49
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFEAAABJCAMAAABy1DryAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACxSURBVFjD7ZVRDoAgDEPL/S+tWLaoweDI9lfUBDd9lKQNQPpoPnBe/e4TWKWXwPn1WIG1/j8p4NeciShiAjHH30+NGOtyvUu1y3CBj77rbZjuWkQRd4kVDn9rWmnkO3NqPRFFzCFWOHyu4TuV8VyLKOJfYoXD1+fKrB/JtYgi/iVWOHyduuiuRRRxl1jh8JWm+Mklooi7xAqHo91z5WuijcSNCpuWW+t95FpEEQPE9HEAvE0KHpttmOsAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTM6NTg6MDUrMDA6MDB897qFAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEzOjU4OjA1KzAwOjAwDaoCOQAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<pre><code>Data:    Short bars, fat seperators
Options: rows=8 rowheight=6 sepheight=2
Encoder: code49
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFEAAABCCAMAAAAYE8oxAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAADGSURBVFjD7ZbRCoUwDEPT///pq2uTqnDxRcFApxPW6YGMxhYwGKGB/drWGVwTjMd6Fbm97tzpeM3aGeLHic/kzrvEoFpJqxd4FlQZLTBX+mqIJkSTfKTLkE7EOUKx9Wzn5TnEEG2IHvlIP1EVfVdx+VRSq3KwegzRhWiSj1fXcV///jqPVolDNRmiDdEoH1f80h0rRLeqatCHXTOGaED0yEeJ4vq+a1GVQMQQbYg++ciGJI4uZLtMYfWxjgH40/cM8UNEg/EDsLEIq7kQ1ZIAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTM6NTg6MzkrMDA6MDA12NcSAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDEzOjU4OjM5KzAwOjAwRIVvrgAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="code-one">Code One</h3>
<p><strong>Code One</strong> was the earliest public domain 2D matrix-style barcode. It is used by the health care and recycling industry and can encode full 256 character extended-ASCII.</p>
<p>Also known as: Code 1, Code 1S.</p>
<p>Standards: AIM USS - Code One.</p>
<h4 id="data-and-options-69">Data and Options</h4>
<ul>
<li>The data field can consist of any ASCII data for <em>standard</em> and <em>T-type</em> symbols.</li>
<li>Note: <em>S-type</em> symbols are special in that they represent a numeric value so may only contain digits.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters, e.g. <code>^029</code> for <em>GS</em>, etc.</li>
<li>When the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by <code>^FNC1</code>, <code>^FNC3</code>.</li>
<li>The <strong>version</strong> option is used to specify the size and type of the symbol:
<ul>
<li><code>A</code>, <code>B</code>, <code>C</code>, <code>D</code>, <code>E</code>, <code>F</code>, <code>G</code>, <code>H</code> - for standard format symbols (default automatic selection)</li>
<li><code>version=T-16</code>, <code>version=T-32</code>, <code>version=T-48</code> - <em>T-type</em> symbols</li>
<li><code>version=S-10</code>, <code>version=S-20</code>, <code>version=S-30</code> - <em>S-type</em> symbols</li>
</ul></li>
</ul>
<h4 id="examples-46">Examples</h4>
<pre><code>Data:    Code One
Options: 
Encoder: codeone
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAgCAMAAABNTyq8AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAB1SURBVDjLrdPbDoAgDAPQ7v9/2hAx6y7BLmEPouyYIkEAZsC6rtHMR5/FEIHqhVPkU7U5RelhLz/F/aKv6ZEMd0dC/NF5E0odkQmloZslhYnonDNBt9bEkXxI/OfQUH2jgRLKx60B0FBsx7hmvyXEhz/eS+gByfwCIWZ5SzQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTQ6MDM6NDIrMDA6MDDJ3tscAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE0OjAzOjQyKzAwOjAwuINjoAAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<pre><code>Data:    Code One
Options: version=C
Encoder: codeone
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA4CAMAAAB6xg5AAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAADQSURBVEjH7ZZZDoAwCETh/pc2Lg0MRWM7JCamfLSK9AlDXUREVWQf91nVZvOeR22MMXUAcXYGeICPMMzhKwBYOIY+ze6GhYC3y0MsCcjSGiqBBtzUNaIBCVgaLA3wmZTXlsZOA5Q0HjBjk8t+pUG10QUUAMh2FgC+1WC9E/UmrRZkP1qxxEcRhwB5Ce2ylyr79asAYDo4YvJ2DnKWAFAo3KpYivdc/hJAaEmnDsqH5fIAFM4vSRPuJOUBvWCxYYhGL3yZJgFZ43zi0R+3GA3YAHTyBg3UMgmmAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDE0OjA0OjEzKzAwOjAwxZXFtQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxNDowNDoxMyswMDowMLTIfQkAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<pre><code>Data:    Code One
Options: version=T-32
Encoder: codeone
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAgCAMAAACRtl6LAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAACJSURBVEjHzZLbCsAwCEPj///0oMPVS2GFBNo8rB3G43QCMMOQDb2nv3t0PrsDUoSrGlFcZrUYj5htrM8NhwAhA1GI0/VvmsVco7jOea2z8OXoEDk5f2K+reqPiAARDTUljqyXCHcaUUN1hL1IHntYcALxpw2LAGG0NAiuER2CaEKIIH+6CHF8Fg/pPAOBXO/svAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxNDowNDozNiswMDowMNWI7W8AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTQ6MDQ6MzYrMDA6MDCk1VXTAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<pre><code>Data:    406990
Options: version=S-10
Encoder: codeone
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAQCAMAAAAlM38UAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAA1SURBVBjTY2BgYAQCdJIBpzCEQmCIFC5hZI1YzEYThlPobBzCxANGrAC3MDYT8AmjGYBbGAB6JACt1W4hAQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxNDowNDo1OSswMDowMOWvlAEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTQ6MDQ6NTkrMDA6MDCU8iy9AAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="msi-plessey">MSI Plessey</h3>
<p><strong>MSI Plessey</strong> is a continuous, non-self-checking, arbitrary length, numeric barcode symbology.</p>
<p>Also known as: MSI, MSI Modified Plessey.</p>
<p>Variants:</p>
<ul>
<li><a href="#plessey">Plessey (UK)</a> is the original barcode upon which MSI Modified Plessey was based.</li>
</ul>
<h4 id="data-and-options-70">Data and Options</h4>
<ul>
<li>The data can consist of any number of digits.</li>
<li>The <strong>includecheck</strong> option calculates the check digit or check digits.</li>
<li>The <strong>includecheckintext</strong> option makes the calculated check characters appear in the human readable text.</li>
<li>The <strong>checktype</strong> option is used to specify the type of checksum, either:
<ul>
<li><code>checktype=mod10</code> (default)</li>
<li><code>checktype=mod1010</code></li>
<li><code>checktype=mod11</code></li>
<li><code>checktype=ncrmod11</code></li>
<li><code>checktype=mod1110</code></li>
<li><code>checktype=ncrmod1110</code></li>
</ul></li>
<li>The <strong>badmod11</strong> option allows a <code>checktype=mod11</code> checksum value of 10 to be encoded with a pair of check digits <em>10</em>. Normally in <code>checktype=mod11</code>, any input whose checksum evaluates to <em>10</em> is considered invalid having no correct representation.</li>
</ul>
<h4 id="examples-47">Examples</h4>
<pre><code>Data:    0123456789
Options: includecheck includetext
Encoder: msi
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIsAAABQCAMAAAAePnYhAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7u3d3dqqqqiIiImZmZu7u7d3d3VVVVREREZmZmzMzMBVSrXgAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAE3SURBVGje7dLRcoUgDARQgiHSyv9/b7lWk0XR6WMflnGcTFjxiKSUJMnsSrfit06zJt7TGE6z8CV/1LTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQ8l8s8pnJd4v35egctcQsJs/7ElMw8iWMT/mau0W02Ho2tXopRU29D7XkLw/VOjzgme9aN3/WYv0G9WXslrJfx1gj2qsK2ahLhDCwtmFtg4zHhndNLLa/9m7pXwH92qIboWLF98JUQRMyVfW8ZdlkPt4tTSGa/XvKCPZ+15ZJW0prvkf9h73uy9M/GiiQWddi0Pf9N/gvuKTu1z0/s+DZtW0712t4/gzP7rL5ehX6uR/2+JD4Xf3seqZpyW8WyU/TMJb8h36bZ2D9vDy+4Qeukxx69nP5/gAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMlQxMjo0Nzo1NSswMDowMPDMXdsAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTJUMTI6NDc6NTUrMDA6MDCBkeVnAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<pre><code>Data:    0123456789
Options: includecheck checktype=mod1110 includetext includecheckintext
Encoder: msi
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAABQCAMAAAAjrBdHAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7u3d3dqqqqiIiImZmZu7u7d3d3VVVVREREZmZmzMzMBVSrXgAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAFISURBVGje7ZLhcoQgDIQBk0gr7/+85awmi3Bz/d1ZhnHisq4fkJRSTnk101T81mkl4jON5rQyz8XzlVzkIhe5yEUucpGLXOQiF7nIRS5ykYtc5CIXuchFLnKRi1zkIhe5yEUucpGLXOQiF7nIRS5ykYtc/5Mrv97KzOV6vpSrzrGKzvu5xRKM8jDP+flhOCtR2+8IqV5mFRPXoc7ly021Dh+457vWw7+1yG9QYz7qN6qe8xp7LPeqgjdqDRMa9jackoHHbfiv/Y1+c9lpmbn6LkCvLdQwqanv2USALChFxP1W8rHKH/UPXE3AWnw/OsK73sl1IWdtzc+uX6ou81H/cI8DFp7/rga634XB3WGknHP2P/KxJaa+t+O4sxv2rmHfb4dnVNBLb+TYVFxp7/vob9GyygfduXJB6c3Yyh/0tvZAftneWEb9B8DLH+iL9YktAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEyOjQ4OjM0KzAwOjAwYd8EZQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMjo0ODozNCswMDowMBCCvNkAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<pre><code>Data:    0123456785
Options: includecheck checktype=mod11 badmod11 includetext includecheckintext
Encoder: msi
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIsAAABQCAMAAAAePnYhAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7u3d3dqqqqiIiImZmZu7u7d3d3VVVVREREZmZmzMzMBVSrXgAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAE5SURBVGje7ZLbcoQwDENjY5u05P+/t3QXbLGk3T72QZkMeBRFObm01qTJrLdb8azbTMRvu5rbzDwvyEIWspCFLGQhC1nIQhaykIUsZCELWchCFrKQhSxkIQtZyEIWspCFLGQhC1nIQhaykIUsZPkvLPL91ztL6nIoRy01is7zu9QQNH0xz/KfLGIe6znNepbiFpY61KIfaer9MiE9n71vOTcqf0CN+eeO/NGPtlb0XnXwVu1lQsM6LqcR4EkbrvWS345JALDC8AC9j1LL5OG5tzADmiIzs/SHyjbNf8cy8Ag19+NX4NR3Wp/I4mPkGe0X5vP83+/oaoWzXT1Az3MOuBeMtEe/+1/yb283tu3MG/j+At/ZsmVeB133x1gbqeva3256hrnO8k8WUZW3bdE/6GPugXxdflzhC9DTHX6My05tAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEyOjQ5OjAwKzAwOjAw9N1MqwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMjo0OTowMCswMDowMIWA9BcAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="plessey">Plessey</h3>
<p><strong>Plessey</strong> is a continuous, arbitrary length barcode symbology for encoding hexadecimal data.</p>
<p>Also known as: Anker Code.</p>
<p>Variants:</p>
<ul>
<li><a href="#msi-plessey">MSI Modified Plessey</a> is a variant of the Plessey (UK) barcode developed by the MSI Data Corporation.</li>
</ul>
<h4 id="data-and-options-71">Data and Options</h4>
<ul>
<li>The data can contain any of the following:
<ul>
<li>Numbers <code>0-9</code></li>
<li>Capital letters <code>A-F</code></li>
</ul></li>
<li>Two manditory check characters implementing a CRC check are automatically included.</li>
<li>The <strong>includecheckintext</strong> option makes the calculated check characters appear in the human readable text.</li>
<li>The <strong>unidirectional</strong> option generates a unidirectional Plessey symbol.</li>
</ul>
<h4 id="examples-48">Examples</h4>
<p>Equivalent symbols, the latter displaying the two mandatory check characters:</p>
<pre><code>Data:    01234ABCD
Options: includetext
Encoder: plessey
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQkAAABQCAMAAAA9QHDdAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7uqqqqiIiImZmZu7u7d3d3VVVVzMzM3d3dZmZmRERElHHKPwAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAGDSURBVHja7dXtbsIwDIXhOp9Lu/u/3gWQ2LBPBGLl3xtNqDLHED8p3bZtm9ntxezhyr28+ob7vBfCrm25l2VkWdO928OmfqtIIIEEEkgggQQSSCCBBBJIIIEEEkgggQQSSCCBBBJIIIEEEkgggQQSSCCBBBJIIIEEEkgggQQSSCCBBBJIIIEEEkgggQQSSCCBBBJIIIEEEkgggQQSSCCBBBJIvCFh97X9uUphBlNzXXLmcyktwibCD1d6L08jy9qyV72pc7nUFmo9lKzkmkNO1Cx9heaWhy/tVRRHKXUPuZrs5KUlyvXPbz1KzEoX7bFWRHMpqtEX02UvLebU935Aol6HfC4xT0zkejzXFpvHiOfabfgJszr8Gcq7nbv+KTGy6E7hsIto7q0VVXOTV7W/vjiX8yVe/XVICNE7BwwTVXGHXwruW643XYq5uL+PSKgnZj0OP8347v0IOfXE3A8/9WxMhxunzc/rfupcw30yc0WfwekS9/+E76z95Md6OvuJoNcP2ZY31OHOJaoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTJUMTI6NDk6NDArMDA6MDBwl0JRAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTEyVDEyOjQ5OjQwKzAwOjAwAcr67QAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<pre><code>Data:    01234ABCD
Options: includetext includecheckintext
Encoder: plessey
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQkAAABQCAMAAAA9QHDdAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7uqqqqiIiImZmZu7u7d3d3VVVVzMzM3d3dZmZmRERElHHKPwAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAGQSURBVHja7dXtjoJADIVhOp87sPd/vYuauGt7JoBm/73EEFJ6sPOAuCzLYvbYmb0cud3ZE+56J5pdbDrLtGVa09nlZajfKhJIIIEEEkgggQQSSCCBBBJIIIEEEkgggQQSSCCBBBJIIIEEEkgggQQSSCCBBBJIIIEEEkgggQQSSCCBBBJIIIEEEkgggQQSSCCBBBJIIIEEEkgggQQSSCCBBBJvSNhzW/4cpbAGU+u69ZnvS2nSbKL55UjPctgyrU2z6qTuy6W2UOuhZCXXHPpEzdJXCLc8fGmtojhKqWvoq8mOayo73bREuX/86FFir3QRj7UiwqWooC+m2ywt9nU7rsnsNYl6X+SxxK4u+nq8ry2Gx4j3sNvwq8mh6bHqvB7XZPafJEYW6RRudhHh3lpRNTd9VfN1MY2oyew1ibO/DgkhsvsCw1RVP+H+FtwfuhT7ih3XZPaahHpj1m3zqxnfvW+hT70x182veg+mzY3e9ut1P3mu4TnZ+4r/DlVT2YsSz3/Cd7b1g6yc5ezb/7PsD6K6OJHN9BZ4AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEyOjUwOjA0KzAwOjAwPQmcsgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMjo1MDowNCswMDowMExUJA4AAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<p>A unidirectional symbol:</p>
<pre><code>Data:    01234ABCD
Options: unidirectional
Encoder: plessey
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPgAAABICAMAAADsxchMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAB8SURBVHja7c85CgAwCARA9/+fTpEqgmCZYixEPEKmqiq5KXmqlraD9t5iuZ2NfxlXxt54ewMcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwc/AP4AUDlKaGbSi1CAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEyOjUwOjI5KzAwOjAwHvv6DwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMjo1MDoyOSswMDowMG+mQrMAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="posicode">PosiCode</h3>
<p><strong>PosiCode</strong> is a continuous, variable length, non-self-checking, bidirectional barcode symbology that is designed for use within printing processes where it is difficult to precisely control the width of a bar.</p>
<p>Standards: ITS PosiCode.</p>
<h4 id="data-and-options-72">Data and Options</h4>
<ul>
<li>The data field can hold the following:
<ul>
<li>For <em>standard</em> symbols: Any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1.
<ul>
<li><em>FNC4</em> function characters will be inserted automatically to allow the encoding of extended ASCII characters.</li>
</ul></li>
<li>For <em>limited</em> symbols: letters <code>A-Z</code>, digits <code>0-9</code>, symbols <code>-</code> and <code>.</code></li>
</ul></li>
<li>The <strong>version</strong> option is used to specify the variant of the symbol, either:
<ul>
<li><code>version=a</code> (default)</li>
<li><code>version=b</code></li>
<li><code>version=limiteda</code></li>
<li><code>version=limitedb</code></li>
</ul></li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters, e.g. <code>^029</code> for <em>GS</em>, etc.</li>
<li>When the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by <code>^FNC1</code> through <code>^FNC3</code>.</li>
<li>The <strong>inkspread</strong> option can be used to adjust the width of the bars.</li>
</ul>
<h4 id="example-posicode">Example PosiCode</h4>
<p>Equivalent ways to generate a PosiCode A symbol:</p>
<pre><code>Data:    Abc123
Options: 
Encoder: posicode
</code></pre>
<pre><code>Data:    Abc123
Options: version=a
Encoder: posicode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJwAAABICAMAAAA0yWxGAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABmSURBVGje7c5BCsAgDATA9f+fFkKNob31PCqomxAmWWOl9srnnw767jBP46st44zqDc70fmVMqDRwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwf3Ab1uAgoSSj9iUAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTJUMTI6NTE6MjArMDA6MDBkodTiAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTEyVDEyOjUxOjIwKzAwOjAwFfxsXgAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<p>PosiCode A including a <em>GS</em> (ASCII 29) character:</p>
<pre><code>Data:    AB^029CD
Options: parse
Encoder: posicode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAABICAMAAAAajE3UAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABeSURBVGje7c7bDcAgDANAZ/+lKyoeBSaodPBDYmRdUp+T91aOub/7uKUjGF9mnrsvtSq2orYPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB8hDxcnHLFT878tAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEyOjUxOjU1KzAwOjAwPFzyXAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMjo1MTo1NSswMDowME0BSuAAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<p>PosiCode A including an <em>FNC2</em> special character:</p>
<pre><code>Data:    AB^FNC2CD
Options: parsefnc
Encoder: posicode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIsAAABICAMAAADxu/bXAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABfSURBVGje7c7BDcAgDANAZ/+lK1VQuUzA4+BBTBC5ZGrl3ZMjr3rF6v7b+9iXmS+kn9dPPT1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYbnE8gDQ8x2Jbmf0pQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMlQxMjo1MjoxOCswMDowMDL2JmUAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTJUMTI6NTI6MTgrMDA6MDBDq57ZAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<p>PosiCode B symbol with widened bars:</p>
<pre><code>Data:    Abc123
Options: version=b inkspread=-1
Encoder: posicode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAABICAMAAACTFNq9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABzSURBVGje7c+BCcAgDATAd/+lS4WWj9ABCidKNAnqJatG9nxC58702FQhH9eket81u0a2nu1Djs/dtSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg/IdwAWEsK1EiHf0TAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEyOjUyOjUwKzAwOjAwhVNm+AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMjo1Mjo1MCswMDowMPQO3kQAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h4 id="example-limited-posicode">Example Limited PosiCode</h4>
<p>Limited PosiCode A with narrowed bars:</p>
<pre><code>Data:    ABC-12.3
Options: version=limiteda
Encoder: posicode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHYAAABICAMAAAAUCfH+AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABRSURBVGje7c1BCsAwCATA9f+fTlNCDYE8oDB6EV2cpGbl7Trn1DenL+lcR3L7skLb8ulgsVgsFovFYrFYLBaLxWKxWCwWi8VisVgsFovF/p0dp30XoSMPm2MAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTJUMTI6NTM6MTUrMDA6MDC84yybAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTEyVDEyOjUzOjE1KzAwOjAwzb6UJwAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<p>Limited PosiCode B:</p>
<pre><code>Data:    ABC-12.3
Options: version=limitedb
Encoder: posicode
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJUAAABICAMAAADI3EeMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABfSURBVGje7c4xDgAhCATA9f+f1ovRiM01lkNoCAuZpI3K6ll1TDvHK59yUsJ/n3e+br4OFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFdUjVQeexiBZ2jPDoQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMlQxMjo1MzozMyswMDowMJ0WHtwAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTJUMTI6NTM6MzMrMDA6MDDsS6ZgAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="telepen">Telepen</h3>
<p><strong>Telepen</strong> is an arbitrary length barcode symbology for encoding all 128 ASCII characters without the need for shift characters.</p>
<p>Also known as: Telepen Alpha, Telepen Full ASCII.</p>
<p>Variants:</p>
<ul>
<li><a href="#telepen-numeric">Telepen Numeric</a>.</li>
</ul>
<p>Standards: USS Telepen.</p>
<h4 id="data-and-options-73">Data and Options</h4>
<ul>
<li>The data can contain any standard ASCII data, values 0-127.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</li>
<li>The mandatory check digit is automatically included.</li>
<li><em>Deprecated: Use <a href="#telepen-numeric">Telepen Numeric</a> instead. When the <strong>numeric</strong> option is given, the data is read as either pairs of digits or <code>0X</code>, <code>1X</code>, etc. The singular values <code>^000</code> to <code>^016</code> can also be encoded using the <em>parse</em> option.</em></li>
</ul>
<h4 id="examples-49">Examples</h4>
<pre><code>Data:    Telepen
Options: includetext
Encoder: telepen
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ8AAABRCAMAAAD7J4QWAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////3d3dqqqqZmZmu7u7zMzM7u7ud3d3iIiIREREVVVVmZmZGDg71wAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAECSURBVGje7dNtr4IwDIbhvbUr4P//vRJzwG3gzDJzPt01IumzdVckOOfPj3Pev67nfdk/vu5Yf/RucldMbfO/ub5YUU6qTq4n4cOHDx8+fPjw4cOHDx8+fPjw4cOHDx8+fPjw4cOHDx8+fPjw4cOHDx8+fPjw4cOHD9+56ih3/rri/tqve76Z4W7393w3u8vmq0LcK/jPFZP4/6uLT4OIatkRrVdI46tzDdrN837AjK89P5vIMpDrGmXJn/O8xWbenE/MbAsDue0G6ef2Q5+GwTzVT/SSz/ok1S/AI4oVz8tbStbLt8eydHJdQ1h779/X/6+tHIZyG90/6xsrNZ0f8q4n8EAgc2d5/n8AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMjE6MzE6NTQrMDA6MDCa/c5MAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDIxOjMxOjU0KzAwOjAw66B28AAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<pre><code>Data:    Telepen^013
Options: parse
Encoder: telepen
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK8AAABICAMAAAC3DVV9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABvSURBVGje7c5BCsAwCATA9f+fLpSamtBzT0MwiMoySa2XVN3/6ue8K33fs499Ruq5f3JrXGzJeatOyZ7My8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v7h/cCv0gZ4bPIi5MAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMjE6MzI6NDErMDA6MDDvWFp2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDIxOjMyOjQxKzAwOjAwngXiygAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="telepen-numeric">Telepen Numeric</h3>
<p><strong>Telepen Numeric</strong> is a variant of the Telepen symbology for efficient encoding of numeric data.</p>
<p>Variants:</p>
<ul>
<li><a href="#telepen">Telepen Alpha</a>.</li>
</ul>
<p>Standards: USS Telepen.</p>
<h4 id="data-and-options-74">Data and Options</h4>
<ul>
<li>The data is provided as either pairs of digits or <code>0X</code>, <code>1X</code>, etc. The singular values <code>^000</code> to <code>^016</code> can also be encoded using the <em>parse</em> option.</li>
<li>When the <strong>parse</strong> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</li>
<li>The mandatory check digit is automatically included.</li>
</ul>
<h4 id="examples-50">Examples</h4>
<pre><code>Data:    123456
Options: 
Encoder: telepennumeric
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABICAMAAACnQdnkAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABESURBVFjD7cwxCgAgDAPA9P+fdhCC4u50FEqTwiXTSWaOu7vt+72anc+2Ap/P5/P5fD6fz+fz+Xw+n8/n8/l8Pp//xV/+JgypJ/85HwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMTozMzozOSswMDowMDmwdjYAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjE6MzM6MzkrMDA6MDBI7c6KAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<pre><code>Data:    1X345X
Options: 
Encoder: telepennumeric
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABICAMAAACnQdnkAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABGSURBVFjD7cw5CsAwDATA3f9/2qRILIhrV8OCLtAk/ZK0v/qknb3vlPF12veNz+fz+Xw+n8/n8/l8Pp/P5/P5fD6fz7/jL2jCDYF4o0c4AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIxOjM0OjE5KzAwOjAwmUlqMgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMTozNDoxOSswMDowMOgU0o4AAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<pre><code>Data:    1234^005
Options: parse includetext
Encoder: telepennumeric
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABQCAMAAABIxFkSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7uqqqqd3d3u7u7iIiImZmZVVVVzMzMZmZmRERE3d3drLT72gAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACtSURBVFjD7dHbCsMgEEXRGa/V5v+/t4oXTEIfGqRP+wRlZpSFEBGdn4jqUs99TnW9J+Ncx4nclCng4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4//bbxm16ZPSmbN/jixLL0r19RrrfNmDjbb3rTIvrw9y99VXqCw3J7UKfquvmobnXardZj/ZOTChPF/3+gtf8TIMcY8fc46a3s7l3rf/e2T3m/z1/dcc5gnc8wGJMBEZ85g3jwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMTozNTowMiswMDowMLgmVWgAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjE6MzU6MDIrMDA6MDDJe+3UAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h2 id="gs1-composite-symbols">GS1 Composite Symbols</h2>
<p><strong>GS1 Composite</strong> barcode symbologies consist of a primary component beneath a 2D component (variations of <a href="#micropdf417">MicroPDF417</a> and <a href="#pdf417">PDF417</a>) used to encode supplementary <a href="#gs1-application-identifier-standard-format">GS1 formatted data</a>.</p>
<p>Variants:</p>
<ul>
<li><a href="#ean-13-composite">EAN-13 Composite</a> is a variant of <a href="#ean-13">EAN-13</a>.</li>
<li><a href="#ean-8-composite">EAN-8 Composite</a> is a variant of <a href="#ean-8">EAN-8</a>.</li>
<li><a href="#upc-a-composite">UPC-A Composite</a> is a variant of <a href="#upc-a">UPC-A</a>.</li>
<li><a href="#upc-e-composite">UPC-E Composite</a> is a variant of <a href="#upc-e">UPC-E</a>.</li>
<li><a href="#gs1-databar-omnidirectional-composite">GS1 DataBar Omnidirectional Composite</a> is a variant of <a href="#gs1-databar-omnidirectional">GS1 DataBar Omnidirectional</a>.</li>
<li><a href="#gs1-databar-stacked-omnidirectional-composite">GS1 DataBar Stacked Omnidirectional Composite</a> is a variant of <a href="#gs1-databar-stacked-omnidirectional">GS1 DataBar Stacked Omnidirectional</a>.</li>
<li><a href="#gs1-databar-expanded-composite">GS1 DataBar Expanded Composite</a> is a variant of <a href="#gs1-databar-expanded">GS1 DataBar Expanded</a>.</li>
<li><a href="#gs1-databar-expanded-stacked-composite">GS1 DataBar Expanded Stacked Composite</a> is a variant of <a href="#gs1-databar-expanded-stacked">GS1 DataBar Expanded Stacked</a>.</li>
<li><a href="#gs1-databar-truncated-composite">GS1 DataBar Truncated Composite</a> is a variant of <a href="#gs1-databar-truncated">GS1 DataBar Truncated</a>.</li>
<li><a href="#gs1-databar-stacked-composite">GS1 DataBar Stacked Composite</a> is a variant of <a href="#gs1-databar-stacked">GS1 DataBar Stacked</a>.</li>
<li><a href="#gs1-databar-limited-composite">GS1 DataBar Limited Composite</a> is a variant of <a href="#gs1-databar-limited">GS1 DataBar Limited</a>.</li>
<li><a href="#gs1-128-composite">GS1-128 Composite</a> is a variant of <a href="#gs1-128">GS1-128</a>.</li>
</ul>
<p>Standards: ISO/IEC 24723, ITS EAN.UCC Composite Symbology, AIM ISS - EAN.UCC Composite Symbology, GS1 General Specifications.</p>
<h4 id="data-and-options-75">Data and Options</h4>
<ul>
<li>The data field consists of a primary and secondary component separated by a pipe <code>|</code> character.</li>
<li>The data for the primary component (preceding the pipe) is entered in a format identical to the corresponding non-composite barcode symbology.</li>
<li>The data for the 2D component (following the pipe) is entered in <a href="#gs1-application-identifier-standard-format">GS1 Application Identifier standard format</a>.</li>
<li>Note that it is not necessary to specify <em>FNC1</em> characters since the encoder will insert these automatically where necessary.</li>
<li>For maximum efficiency, if the data for the 2D component contains a number of application identifiers matching any of the specifications below then they should be provided in this given order:
<ul>
<li><code>(11)...(10)...</code></li>
<li><code>(17)...(10)...</code></li>
<li><code>(90){0-3 digits not starting 0}{upper alpha}...</code></li>
</ul></li>
<li><em>Deprecated: Default is best unless your application dictates otherwise.</em> The <strong>ccversion</strong> option is used to select a specific 2D component:
<ul>
<li><code>ccversion=a</code> - <a href="#cc-a">CC-A</a></li>
<li><code>ccversion=b</code> - <a href="#cc-b">CC-B</a></li>
<li><code>ccversion=c</code> - <a href="#cc-c">CC-C</a> (<a href="#gs1-128-composite">GS1-128 Composite</a> only)</li>
</ul></li>
<li>If <strong>ccversion</strong> is not specified a CC-A component will be selected if the data will fit, otherwise a CC-B component will be used. In the case of <a href="#gs1-128-composite">GS1-128 Composite</a> a CC-C component will be used if the data does not fit within either a CC-A or CC-B component.</li>
</ul>
<h3 id="ean-13-composite">EAN-13 Composite</h3>
<pre><code>Data:    331234567890|(99)1234-abcd
Options: includetext guardwhitespace
Encoder: ean13composite
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGoAAABZCAMAAADhEUGmAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAA7u7umZmZd3d3zMzMqqqq3d3du7u7MzMzZmZmERERIiIiVVVVREREiIiIk/iuSAAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAIJSURBVGje7ZTZkqwgDEADRgFF/P+/vVmA0FM9jz1ddSuWW9ZDEhFAjxD01Gt5pxub5S4vcnV96GF8G2n0mr7dNhN8BaXhsOQRXpiUwVCXEapOkzvcjftV1JJxDe9dhaVzMPynUl1sXcFM30LNij91hF+Fj6I+S3rJ/4eo/3NWMHbiukXnFrC/0fzPBDAT2JZe/lnmEBzlKEc5ylGOcpSjHOUoRznKUY5ylKMc5ShHOcpRjnKUoxzlKEf9CSpuuE+USUfiu0pTCSg6xK0H75gBMvKRFm+JPeShsZq7nHgdAzWlWCkHlBsrLi7I6ZuhsGB9FBUSe5Nb1AecDa88YsV7a3opakgYAi+3ACRTQm69V907XRH2U8slYqVKGjzkeRTYybbdI1ZQiap87hlsEqM2Ks+UsSRuQ92oqL6wmKOQEi+KkpMbogQxMc3YPrS91DRnZVLuOXAqb24E5IAPKdkbW2nXxm4tS3vrlWCrRAxCtITjC0xnWz7ELimKRzWUzymxcZflqpUaeIF2GvK1E5y0V8UFZelznu1/kQTVzmjKxjuhF6sBMkB+Pbk0S858mho/1vQ8BB7oT4lz6ueyulAQD6FLiarKXNXFPX96crLhKZOjx5o+ltLqMVAmMQqljtWFG0gDqmObVTFortgnd5dWqBlPPWkFr+lz/4reSW+Vu0npnWHPq23G/gOPyhoIOYKSyAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxNTowMjoxMiswMDowMLNqZ8MAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTU6MDI6MTIrMDA6MDDCN99/AAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="ean-8-composite">EAN-8 Composite</h3>
<pre><code>Data:    12345670|(21)A12345678
Options: includetext guardwhitespace
Encoder: ean8composite
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABbCAMAAADncTNAAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRFAAAA////qqqq3d3dmZmZd3d3zMzM7u7uu7u7IiIiMzMzVVVVZmZmERERREREiIiIKRqjnwAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAGcSURBVFjD7ZPdloUgCIXZGamdsvd/2wGROn9308XMWrBWprD9QDIiEEBiUNO5OWBeXfXRpqBTT/Z2J90HGi7zdoxthb/J177fknj8SnQbyL12sgHCmLl3hBzinSBX3wnCWRdwbqdTdqa70l7osR23gs7af2WEW0G/5/gNvgv093p0/af+r/gH9+vnCnpO/fZXBShAAQpQgAIUoAAFKEABClCAAhSgAAUoQP8UBExJx5kXGbO9xHjEZ2aeZb1wAQqriX7S4Q2UqyiwPrgy8rrxPnXOyIlmIF65HgaihK3xXt5ATKSpViAR5ob+oDQHdSXSnrFsVuqBRVbz4+NoHSRJMyFJwcdDpmsaoFxnLWhuuWRDSsqj9bTfQF3B2oq1CuwxYYAK8SEBbmvbtVVoombGS7OHGUhb1Hlbw7H5kZCXnpyrHG2H9cBBOMcnUNu08lJ6rOk1GIWaujdON21a1iSrjv0EdaH1p9RnhbZDPEkqKrp1T6P1vH0Fca9Bmry2Oj0rsjSnLnryHhhZjrp14ivoxcr4OJct5kkvgXP1AwffFg9E5rMlAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDE1OjAzOjAyKzAwOjAwkAIMYwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxNTowMzowMiswMDowMOFftN8AAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="upc-a-composite">UPC-A Composite</h3>
<pre><code>Data:    01600033610|(99)1234-abcd
Options: includetext
Encoder: upcacomposite
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAABZCAMAAADsDzHhAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAAqqqq3d3dzMzMd3d3u7u77u7umZmZIiIiMzMziIiIZmZmREREERERVVVVhf61IgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAG3SURBVGje7ZTRkoMgDEWDGFAU+v9/u4QkQqmzsy/dzuwmFa7KDUcDFqCGc3xwG85rR8OtbyetyX0nadSBTMPt8srYNcHHYDwBDDM1ors4SmGLprLpIqu9kz8OG+YcJ5DawlA/UP91ky39yVwf+iTseu93hfv28q2w97Km+X8V9nfXTHbn+NH2jTyOyZeru3kQ/cb13w66GMxgBjOYwQxmMIMZzGAGM5jBDGYwgxnMYAYzmMEMZjCDGcxgBvvvMIDFU79iaBfoZ2m2uOEKl6hbctn2E1jcKQ8T7gfAmbGEScgW04llUVG35IrtBYYprc8wdK4m+BJhPWGtsj0mIduWgZqIuCVXbQOsYcKDjqmMlLDlGCLAUSfzbhL6+Vqn46EibslVW4cxBuu7lzsY5pTLBoityM/CtjXtXkXcmiu2DmMMLWuGKVrCXgtT7mES/swq4n6GDcEY3NqbvcJoMWrCkmkJJqEIoY2LiFtyB5vCGmZB8OkO5uuzhtJWHs9JKOpCQdhVxK253SYhmIRpuYPVyuS9jhz7WfwstMdTonERdUtut2kIJni4D8/761a4kHGQYeDlChjzBWMCGTBoGJ2KAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDE1OjAxOjM0KzAwOjAweajuhwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxNTowMTozNCswMDowMAj1VjsAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="upc-e-composite">UPC-E Composite</h3>
<pre><code>Data:    0121230|(15)021231
Options: includetext
Encoder: upcecomposite
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABdCAMAAADNPfuXAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAAqqqq3d3dmZmZd3d3zMzM7u7uIiIiu7u7MzMzVVVVZmZmERERREREiIiIAiF+8gAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAFhSURBVFjD7ZjrjoQgDIUPYoWi4vu/7Rbk4jCbyWzWSTbZNoqcln7S4i8BMWPSdT7kTrMyKX6Tp12ci9DtLoKpoBI0hWDaktOR4x8jtD3WaKmk1lEKhPkcATV+FXXf1youpd5KQEuqB2euhNrBjr2ZAIzyDTO4mfBzwJjze8Jf6EP+fsuXg/po03607TiNEpSgBCUoQQlKUIISlKAEJShBCUpQwr8liE02jTMtGJUrzoksXhCcZxnDSp4G5cJG+wRskXYeCBTCUghkjORwAOyo5oh0L7vDvFaCi1FyeU1XZeacWWKjsrL3Y8URM68QDoINoAPYHwhiNtCTWoK3IKpdz3vmJNIYeztyztmGUdktVkKxKTDtoDnv4UqIm3tSzDl1kpctfTnT5OV0Ui1Xwhy/UdIDsIeVTtJW4wvDSjhQmB4IZNqv4a5cCNHLusNvu62rnad0juDmeWnMuTbLrvuciC/+DA9FfD9WcwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxNTowMTowMSswMDowMKUfxsMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTU6MDE6MDErMDA6MDDUQn5/AAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="gs1-databar-omnidirectional-composite">GS1 DataBar Omnidirectional Composite</h3>
<pre><code>Data:    (01)03612345678904|(11)990102
Options: 
Encoder: databaromnicomposite
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAoCAMAAAA/pq9xAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACWSURBVEjH7ZJBEsUgCEOT+1/6VyWETvftX8Sx4mDgURQA99zmGpdd61mWWY6zWydbeEwH9adtZaiYzv4ShGZBESzx8YG3ZPvUVFpm+hcQOl4YTna18uaBO1pIKL7hL0LooavCcEPc0TS1qxM/1OK5uOezUY2t6dDxOxzXB6tVDvVa9WwDCSSQQAIJJJBAAgkkkED+APIDnn4Hz/ZB6SwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTQ6Mzg6MDIrMDA6MDAslkgQAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE0OjM4OjAyKzAwOjAwXcvwrAAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="gs1-databar-stacked-omnidirectional-composite">GS1 DataBar Stacked Omnidirectional Composite</h3>
<pre><code>Data:    (01)03612345678904|(11)990102
Options: 
Encoder: databarstackedomnicomposite
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAABQCAMAAAB7/0YbAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAACkSURBVFjD7ZbBDoMwDEPt///pKdROgE3TpnI0oLQkfmlIDxQg6zmGsmUALJ8iNVLTki3NJqjoIV4TrAzEzEfxCIiBuyRZYVY8BJ6qcR50vzjNMbUJqg8UTlzrlmNAboHd9ZZDlzK6T96kCU8i9rtlhkcbMGDAgAEDBvwC2vX3H9mS3+4bN85PKy43bkuezjQ6y/gT2Sl1urzmDRgwYMCAAQO+gS9r7wgk0weJzQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxNDozOToxNCswMDowMGwuFooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTQ6Mzk6MTQrMDA6MDAdc642AAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="gs1-databar-expanded-composite">GS1 DataBar Expanded Composite</h3>
<pre><code>Data:    (01)93712345678904(3103)001234|(91)1A2B3C4D5E
Options: 
Encoder: databarexpandedcomposite
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJUAAAApCAMAAAALdJtzAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAACzSURBVFjD7ZNBDoVACEPL/S/9k4HSauLC3Y+pUWcCWJ7AAFV993P25w20QebxMOD4OuzsTGGsdOD99d9UMDjm5MJktnTYk42K36Sa7xeLOOxMjb7aCbV7BMC/4zx8jYpgpfGkGSXRnXKdhroTwVB5VCi4TtPcDJLj7+4AYLPWVov10zGzgsAkinnqkkfFV5TaYLh2/pk0VKEKVahCFapQhSpUoQpVqEIVqlCFKlShCtULqh9/EQvfeABa/gAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxNDo0MTowMyswMDowMF/Pfe0AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTQ6NDE6MDMrMDA6MDAuksVRAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="gs1-databar-expanded-stacked-composite">GS1 DataBar Expanded Stacked Composite</h3>
<pre><code>Data:    (01)00012345678905(10)ABCDEF|(21)12345678
Options: segments=4
Encoder: databarexpandedstackedcomposite
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGYAAABzCAMAAABdGod4AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAEwSURBVGje7ZdJckIxDES773/ppGy1pJANoQqyef4MtqbXltggyb6v+6XvdT7q5PM+vutx2TW+u2mnJ/9EVdHPYo7hrF1j0TXcji2FLlWuwlIH/g9GyVblKZ1JR3cXFUPaOTVc6R7LBzEP5dRW9ax3taVu93K5Ws+EXPyqH+G5kSc8c9vTiKkb0L+ukefMEgwYMGDAgAEDBgwYMGDAPI3Rz/p1KrPr5ORdSsqNabui3xOiFfCuZ3H6FtH6+0a5dJp2+1aJqzF+aETMTsI0WjMf9wzi6XSvFiWjNpPWMsCAAQMGDBgwYMCAAQMGzPOY+ivXpyki9dnZn8joKXFRu+J3Wle6xvc9i9N9GpcjqXq2tL6wnJt7XTpltQQ5U3iJBAYMGDBgwIABAwYMGDBg/rC+ANcGFSp/Rm8LAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDE0OjQxOjM4KzAwOjAw00cu9AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxNDo0MTozOCswMDowMKIalkgAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="gs1-databar-truncated-composite">GS1 DataBar Truncated Composite</h3>
<pre><code>Data:    (01)03612345678904|(11)990102
Options: 
Encoder: databartruncatedcomposite
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAUCAMAAABMHminAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACLSURBVDjL7ZLbDsAgCEPb///peaEU4/uWJRgnBguHoQC45jJjDDvXvUwzHXs3T5ZwmwzKT9vIEDGZ/SUIzYIiGOLtA49k69RUWmb6FxA6XhhWdrTy8MAdDSQUn/AXIfTQVaG4IW5pmtqViS+1eC7ufjaqMTUZWn6H5fpgtcqhXquebUMa0pCG/AzyAFmcA+dGpM5rAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDE0OjM5OjQ1KzAwOjAwgrkTWgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxNDozOTo0NSswMDowMPPkq+YAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="gs1-databar-stacked-composite">GS1 DataBar Stacked Composite</h3>
<pre><code>Data:    (01)03412345678900|(17)010200
Options: 
Encoder: databarstackedcomposite
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAAYCAMAAACY9M4aAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAACHSURBVDjL7ZNBFoAgCESH+186g2EG19aqrAeKfAQpIOJ+Uy2RsxJpwBol0iAriQMwWsmxnBuw4TmQ2TqrmowyoPCPgOhFToI5l4aLEXUIsnTdRjcGWwkQGEcgTZ0Nu4HQ4227oyvzqTrTAbXtsF8B1eDtVxq3Oto9qfkZasnR/Rkehn/wBfACDUICmk9ePx4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTQ6Mzg6MzgrMDA6MDAGaRC9AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE0OjM4OjM4KzAwOjAwdzSoAQAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="gs1-databar-limited-composite">GS1 DataBar Limited Composite</h3>
<pre><code>Data:    (01)03512345678907|(21)abcdefghijklmnopqrstuv
Options: 
Encoder: databarlimitedcomposite
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAAApCAMAAAB+1eWVAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEtSURBVEjH7ZVJDgIxDAS7//9pQIl7gbNPDBLMEMeVeAdAfL48DyAW3i/keSPv71mBdKSSWltM6g+0aqYEHI5BlGph9pgYizjyQ6DM0nGy+XpCC8ZsMSMy15ojJVsEmjUQ+h7YZ9L5wQseZmgN0DGabIswbTKVyQinh6nKptp/POAYCbPDlAUhygyXOGrTleErrDOz8Gz/lx5kLkNNC4FZZOr6mSqzLcu2VJRH4YxlZjY2G8M4RonkvlINRJ16j5mpPFaBKHc4UuEMB9CYXWaVpHtFHpPDpaYHzeQuc9qVSzSGV7XBOG6sRikvMxMYpToe0WhgOQH2jjGbzAqAmDlydUSFi30nrjGZn3F67r29JIZJ9/LYrmoxUNfh74UnWSvGbhKRypOzD/Nh/g/zBWjrBu34JydYAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDE0OjQwOjE2KzAwOjAwLp856gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxNDo0MDoxNiswMDowMF/CgVYAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="gs1-128-composite">GS1-128 Composite</h3>
<p>GS1-128 Composite with a CC-A 2D component:</p>
<pre><code>Data:    (01)03212345678906|(21)A1B2C3D4E5F6G7H8
Options: 
Encoder: gs1-128composite
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJwAAAAtCAMAAABs8PKvAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRF////AAAAVcLTfgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAADPSURBVFjD7dThCoMwDATgu/d/6SFp7tIyGAx/bHjiptM0+bpUgQ8bCeLa11md16/rAsn6qigFriiHsz6doC5AkV9tv4+ja5ai81MaDkqHVWCPQyfqMc/A8UjJgcaSjOI8QsE5r9VSPgPXBCXGIPc9H9357h7ghwSU9p9xXu/dETjjO8q+/McI1dNo5x+vkn2Yo3oq4zahytQCU7quoedVaLoeh3fDnNjZBI7Z+C90d/QmDS644IILLrjgggsuuOCCCy644IILLrjgggvuJtwL/aYOc8ivgEoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTU6MDU6MDUrMDA6MDBYu0KqAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE1OjA1OjA1KzAwOjAwKeb6FgAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<p>GS1-128 Composite with a CC-C 2D component:</p>
<pre><code>Data:    (00)030123456789012340|(02)13012345678909(37)24(10)1234567ABCDEFG
Options: ccversion=c
Encoder: gs1-128composite
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAAxCAMAAABXuTOfAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAELSURBVGje7ZXBjsQgDEPj///pVWlsJ1PtnYM7GkRDYp4R0Kp+8P4AvzydJ3D6p3danITq9qnpMJuSRuGb+KrqT2GmsQplIHDa1n2ZGAj8LfCrjggYyENCJZ3Zsu1BUQwjMlhKkuhy42UM/PXwy4W3+KJRol1x7/uI4LsuCv3W6TgY/ssR+HvhrTng+xpknLtTk/O2LOPXUPHAoFNPpXI/DwECfx88+PAOK1PwgtMeNL5G9OFUxbhMp7P/yuDjVNOfXqXFZi2FVgJrqSbwNDLcOGlUwLPa9frsr7LpnGfZgh7xZ6cw5wl84AMf+MAHPvCBD3zgAx/4wAc+8IEPfOADH/jABz7wgQ/87fB/YcoQqYHUM54AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTU6MDQ6MTUrMDA6MDB70ykKAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE1OjA0OjE1KzAwOjAwCo6RtgAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="cc-a">CC-A</h3>
<p>Isolated CC-A 2D component:</p>
<pre><code>Data:    (01)95012345678903
Options: ccversion=a cccolumns=3
Encoder: gs1-cc
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAICAMAAABta0kZAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABcSURBVCjPrZDBEQAhCAOT/ps+1AX03uiMiiSrIMVwzFhtzuuworNLJIlMjKvvxkA+BCH9YUmkJ9/aLvcnpkGIj6N07XmKQ9+l3YoRkKq5iSnq1Wu6n2U+dXoS9AE1fgEbS3CS0wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMDoyNToxOCswMDowMMzkDP0AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjA6MjU6MTgrMDA6MDC9ubRBAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="cc-b">CC-B</h3>
<p>Isolated CC-B 2D component:</p>
<pre><code>Data:    (01)95012345678903(3103)000123
Options: ccversion=b cccolumns=4
Encoder: gs1-cc
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGMAAAAMCAMAAABBR/MoAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACUSURBVDjLvVJLDkQxCIL7X3oaC0rffkz606oYBAB51tlAbeh1XOXXWY5yTYSsmz4WYMt1VzAQGLea/vvvWr3g6mQHuSu8XSxjNA9Zn05TrvlTBpJnuhkmYa67g+H5KHoO3abw1UYIgBZFiIRRdwsD/c6Je4JjNS+p8Zy2ISyCfQwP+Ds2dIxJnEZCq/5CRrz5f8b4AR3JAitEjC4QAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDIwOjI2OjIwKzAwOjAwmrP+egAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQyMDoyNjoyMCswMDowMOvuRsYAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="cc-c">CC-C</h3>
<p>Isolated CC-C 2D component:</p>
<pre><code>Data:    (02)13012345678909(37)24(10)1234567ABCDEFG
Options: ccversion=c cccolumns=5
Encoder: gs1-cc
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJoAAAASCAMAAACUwjeQAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAADCSURBVEjH7ZVRCsMwDEOt+196NLYkp2UwRvPnFkriOdZLp8YRdSFvwJNrsAI5aYEcVxRrWT1XBdUIPBOziFRY1RhwfNDeRJOa5aQBFY3KEI02IREKM9PCfAWDdhZtWy3PEDt/w2Y+i5ca+n5sT5No9zbwoJ1B07lxLyvFoA2hIOltLVqyje02hEH7YNAOoNkQ/XDX8f49APmvzdQCCN26C5j282cwaP+g+c8naF8uADWFm8GU4aaB5jLybM1j0N5C+wDVaATAPNGSzgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQyMDoyNzozMCswMDowMLnbldoAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMjA6Mjc6MzArMDA6MDDIhi1mAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h2 id="raw-symbols">Raw Symbols</h2>
<h3 id="daft">DAFT</h3>
<p><strong>DAFT</strong> is an encoder for directly specifying the descender, ascender, full-height, tracker-bar succession for a custom 4 state barcode symbol.</p>
<h4 id="data-and-options-76">Data and Options</h4>
<ul>
<li>The data field contains a sequence of the characters <code>D</code>, <code>A</code>, <code>F</code> or <code>T</code> to denote the descender, ascender, full-height and tracker bars of a custom 4 state symbol.</li>
</ul>
<h4 id="example-17">Example</h4>
<pre><code>Data:    FATDAFTDAD
Options: 
Encoder: daft
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAANCAMAAABmbkWbAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAkSURBVBjTY2BgZGQEYTBA4UB4g0QejtBYdJFHOAdOwTi0lgcABSEBP2n6/zEAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMTQ6MDY6MTMrMDA6MDDBYBWIAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDE0OjA2OjEzKzAwOjAwsD2tNAAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="flattermarken">Flattermarken</h3>
<p><strong>Flattermarken</strong> are identification marks used in book production that facilitate the proper arrangement of bound sections by a book binder.</p>
<h4 id="data-and-options-77">Data and Options</h4>
<ul>
<li>The data field can holding any sequence of digits corresponds to a 9 module width with the following meaning:
<ul>
<li><code>1-9</code>: a single mark exists in the corresponding module position</li>
<li><code>0</code>: unmarked sequence of modules</li>
</ul></li>
<li>The <strong>inkspread</strong> option can be used to adjust the width of the bars.</li>
<li>If greater fidelity is required then the <a href="#raw">raw</a> encoder should be used instead.</li>
</ul>
<h4 id="example-18">Example</h4>
<pre><code>Data:    1304
Options: inkspread=-1
Encoder: flattermarken
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAWCAMAAAAPf7fDAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAYSURBVCjPY2BghAMkJlyIYVR+VH4QywMAUZUCafPc07gAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTFUMjA6MjM6NDErMDA6MDAcgjcNAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTExVDIwOjIzOjQxKzAwOjAwbd+PsQAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="raw">Raw</h3>
<p>The <strong>raw</strong> encoder is used for directly specifying the space/bar succession of a custom barcode symbol.</p>
<h4 id="data-and-options-78">Data and Options</h4>
<ul>
<li>The data field contains an alternating sequence of widths (1 to 9) for the bars and spaces of a custom symbol.</li>
</ul>
<h4 id="example-19">Example</h4>
<pre><code>Data:    331132131313411122131311333213114131131221323
Options: height=0.5
Encoder: raw
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAkCAMAAAA+Xt2BAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAA/SURBVEjH7czRCQAgDAPRZP+lpWmLLuDfCaIc4UmSbTlvf+dWqf7mWd/YqyyTtFIfaGhoaGhoaGhoaGjoL/QBm94GVRENeQ8AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTJUMTI6NTQ6MjgrMDA6MDCxZ1HBAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTEyVDEyOjU0OjI4KzAwOjAwwDrpfQAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h2 id="partial-symbols">Partial Symbols</h2>
<h3 id="ean-2">EAN-2</h3>
<p><strong>EAN-2</strong> is the two-digit add-on code that accompanies a EAN or UPC type barcode symbol such as an <a href="#isbn">ISBN</a> or <a href="#issn">ISSN</a>.</p>
<p>Also known as: Two-Digit Add-On, Two-Digit Supplement, UPC-2</p>
<h4 id="data-and-options-79">Data and Options</h4>
<ul>
<li>The data field must contain two digits.</li>
<li>The <strong>includetext</strong> option should normally be supplied.</li>
</ul>
<h4 id="example-20">Example</h4>
<pre><code>Data:    05
Options: includetext guardwhitespace
Encoder: ean2
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAA8CAMAAABGivqtAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////qqqqd3d33d3dmZmZZmZmREREERERu7u7AAAAzMzM7u7uVVVViIiIIiIiMzMzFWY1SwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAACASURBVDjL7Y+BEQMhCAR5VBSJfv/d5mUMMbQQcEbRxeMA0Lgw6ZkRMYOPQljbSsgws9FeBfJLH48/lg8CSOsmMx/aHwHEXdwYx41ewLD0LfMjf9Hq73uaufRYw7JNtOmdw5ilrsGFbpr9HJm1Lj2bLmZx06nMF0PgwIEDB/47/AYjhBYcl8hfpQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxOTowNTo0MiswMDowMIPsyyUAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTk6MDU6NDIrMDA6MDDysXOZAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="ean-5">EAN-5</h3>
<p><strong>EAN-5</strong> is the five-digit add-on code that accompanies an EAN or UPC type barcode symbol such as an <a href="#isbn">ISBN</a> or <a href="#issn">ISSN</a>.</p>
<p>Also known as: Five-Digit Add-On, Five-Digit Supplement, UPC-5</p>
<h4 id="data-and-options-80">Data and Options</h4>
<ul>
<li>The data field must contain five digits.</li>
<li>The <strong>includetext</strong> option should normally be supplied.</li>
</ul>
<h4 id="example-21">Example</h4>
<pre><code>Data:    90200
Options: includetext guardwhitespace
Encoder: ean5
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA8CAMAAADrC+IEAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////7u7umZmZd3d33d3dqqqqzMzMMzMzVVVVERERZmZmREREu7u7IiIiAAAAiIiI04riVAAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAADOSURBVEjH7ZFbFsMgCERRTIwvsv/dFqwaTE93gD8ZB++gBECW8xi6gGMKj+fLWUItFy9Mh6hcMFUR7DTcnCWAaJF34cTI4kwO/MWi8i6Qdpbo7CSR0x2NiA5U/3aW2Nr65uCmETEDQ0Tt6JJqi6nhqzye+Y9UGWeS8ZUhoGT3HWj5KekZ1caZWW7IY+jCl1FazhLbbOGKJfYed8tJ/hqSLO084rmwnKAqB0nGJx/qD9kdCpV0t0nCIOGHnE43jDTSSCONNNJII4000sgX+QGDEEj7mOYOyQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMVQxOTowNzoxMCswMDowMFhmBFUAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTFUMTk6MDc6MTArMDA6MDApO7zpAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h2 id="gs1-application-identifier-standard-format">GS1 Application Identifier Standard Format</h2>
<p>Certain barcode symbologies (including <a href="#gs1-128">GS1-128</a>, <a href="#gs1-databar-omnidirectional">GS1 DataBar Omnidirectional</a>, <a href="#gs1-datamatrix">GS1 DataMatrix</a>, <a href="#gs1-qr-code">GS1 QR Code</a> and <a href="#gs1-composite-symbols">GS1 Composite Symbols</a>) represent standardized GS1 data and require that their data field is provided in GS1 Application Identifier standard format, consisting of a concatenated string of <em>AIs</em> along with their corresponding values.</p>
<p>The AIs are a set of approximately one hundred two-, three- or four-digit prefixes written within parentheses that represent physical attributes and business information, e.g.</p>
<ul>
<li><em>(00)</em> is an eighteen-digit SSCC.</li>
<li><em>(01)</em> is a fourteen-digit GTIN.</li>
<li><em>(403)</em> is a variable-length routing code.</li>
</ul>
<p>The following input represents GTIN <em>0061414199996</em>; Expiration Date <em>1 January 2010</em>; Batch <em>123ABC</em>; Serial <em>1234567890</em>:</p>
<pre><code>(01)0061414199996(17)100101(10)123ABC(21)1234567890
</code></pre>
<p>Encoders for barcode symbologies that expect data in GS1 Application Identifier standard format will take care of parsing the input and inserting any necessary <em>FNC1</em> characters to delimit variable length fields.</p>
<h4 id="gs1-application-identifier-definitions">GS1 Application Identifier Definitions</h4>
<p>The Application Identifier definitions are provided in the <a href="http://www.gs1.org/barcodes-epcrfid-id-keys/gs1-general-specifications">GS1 General Specifications</a>. A summary is available <a href="http://en.wikipedia.org/wiki/GS1-128#Full_list_of_Application_Identifiers">here</a> however this may be out of date.</p>
<h1 id="options-reference">Options Reference</h1>
<h2 id="check-digits">Check Digits</h2>
<h3 id="includecheck">includecheck</h3>
<p>Generate check digit(s) for symbologies where the use of check digits is optional.</p>
<h4 id="example-22">Example</h4>
<p>Calculate the optional check characters of this Code 93 symbol:</p>
<pre><code>Data:    CHECK ME OUT
Options: includecheck
Encoder: code93
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJEAAABICAMAAADBN+f2AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABnSURBVGje7c5LCsAwCAVA3/0v3QSJTZfdTwyIH2SqsmK97J+k650n3aN0Ud2q7tV3eUbn1Bw529fJU78MIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiol+iBxN4FEHZ1dBAAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEzOjIzOjUyKzAwOjAwCaPQ6QAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMzoyMzo1MiswMDowMHj+aFUAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="includecheckintext">includecheckintext</h3>
<p>Show the calculated check digit in the human readable text.</p>
<h4 id="notes">Notes</h4>
<ul>
<li>For barcode symbologies where the check digit is not mandatory, this option must be used in combination with <strong>includecheck</strong>.</li>
<li>If any part of the checksum does not have a printable representation then that part is not displayed.</li>
</ul>
<h4 id="example-23">Example</h4>
<p>Display the check digit of this Royal Mail barcode:</p>
<pre><code>Data:    LE28HS9Z
Options: includetext includecheckintext
Encoder: royalmail
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHwAAAAVCAMAAACzO3oeAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACRQTFRFAAAA////7u7uqqqq3d3dmZmZu7u7iIiIzMzMd3d3ZmZmRERE/zY2hgAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEHSURBVEjH7VNLFsMgCBQRxOT+921iGx1SbV+76aLxkQ8wMIgYAhHtT12hfZrpZAhjnDM/AcIp1+MdwkX+t+QBkZ/9fR90kf+G3A3KaOD8xIQ56DR9w4FzTBf5D8lfreiU+A4+ipp6dvLInLoliao0LbNwU1hEWxJJSXomK7njDHCkqhPPvQ8KBqJS5QhFpUwVkipHxVVaBuOxZ0wuqFp3MrMCDMmzQcjWkaX3OeaJp5P3DhaFpFj2xmACMI8TKJkFCDMes/M0ctdPa/tAbuIqw527DIQK28xTydOylNJsupayHN21XYGy+/TZarbCITD3LRnDbrcM69hDb6+aWy+uWkzj/zmK6Aap1gyFX7yK6AAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMlQxMzoyNToyNCswMDowMG2onI0AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTJUMTM6MjU6MjQrMDA6MDAc9SQxAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h2 id="input-processing">Input Processing</h2>
<h3 id="parse">parse</h3>
<p>In supporting barcode symbologies, when the <em>parse</em> option is specified, any instances of <code>^NNN</code> in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.</p>
<h4 id="example-24">Example</h4>
<p>Equivalent symbols:</p>
<pre><code>Data:    This is Data Matrix
Options: 
Encoder: datamatrix
</code></pre>
<pre><code>Data:    This is ^068ata Matrix
Options: parse
Encoder: datamatrix
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACRSURBVDjLrZMLCsAgDEPT+1964NyaxqkRJoifvtmSZgAi9tOF2tLW3AHoDwDnUJ7eIIZ0Cyjfy4STYUB3igfisukzAxpDk3o2UBWARZXeGVBejUKUsg0obfHsud1nUAap3O+uTSE2iaYh3IJGh2rxLhShqer9KaQB+SVMSM3GkOi0hBhZGnkDVRHVNj1qQT+NC+i3AjkJijycAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTExVDE0OjIzOjM2KzAwOjAwbzhP1wAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMVQxNDoyMzozNiswMDowMB5l92sAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="parsefnc">parsefnc</h3>
<p>In supporting barcode symbologies, when the <strong>parsefnc</strong> option is specified, non-data function characters can be specified by escaped combinations such as <code>^FNC1</code>, <code>^FNC4</code> and <code>^SFT/</code>.</p>
<h4 id="example-25">Example</h4>
<p>Code 93 including a special shift combination <code>(/)A</code> representing <em>!</em>:</p>
<pre><code>Data:    TERRY^SFT/A
Options: parsefnc includecheck
Encoder: code93
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABICAMAAAA3UqArAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABMSURBVFjD7c3RCQAgCAXA3H/ptBBphbjs4yHqrRVZ+aJ+xA0nTZ7QA2ehc7XfmT7QlyEQCAQCgUAgEAgEAoFAIBAIBAKBQCAQyE/IBtYJDKnfEaLAAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEzOjM2OjA0KzAwOjAwBTT/MwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMzozNjowNCswMDowMHRpR48AAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h2 id="symbol-dimensions">Symbol Dimensions</h2>
<h3 id="height">height</h3>
<p>Height of longest bar, in inches.</p>
<h4 id="example-26">Example</h4>
<p>A 1/2 inch tall EAN-13:</p>
<pre><code>Data:    977147396801
Options: includetext height=0.5
Encoder: ean13
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGkAAAApCAMAAAABBPdkAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAA7u7umZmZd3d33d3du7u7qqqqzMzMMzMzVVVVERERIiIiZmZmiIiIREREKPMjrAAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAGFSURBVFjD7ZJLlsQgCEVR0WjUuP/dNj+N1TXqQc80J4cIPK5CANZy/Dh++Vv2/OV0sznFtbJVKCHLdLt21nNwSId0SId0SId0SId0SId0SIf0LyQfMC5SQl7RDDkvjQHCjLEg/9JmTGwkQBorqNqV7cuN9foguWiGSrWkIAcz5ktnwa7Fgu0BsF0fWFmlWnI2lOxnELxMklR9lkHnhJSGtZmcgQT0btpYPeQOqdFuQKZduKc2UemovUbqi3cbKQp2GiH5Et1yRrrqc+/aMHzyIEAKMF7ThRQkhZ/QKL6ThvbLjJDuy66rzlxa3LU4yqiBb9FqFDwskhxPuwdYG26kpHcxI9lPN+l0xj52LRIwV0g1E/SLxGNak6G0tXrYjWQP/rH5Q5wpzUpTy5OzXpKhUVlBIY3uLZPniP0l1bib2QEtLU4ahYhebaQ7pSoDIgSPSwuyVk5h6y6j+LXbanyR1OlLGe360GJjj7dxPa3rOVmL0o95/wR/Wymtk5k2qieriW98Wz9LmhEf9F4SHQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMlQxMzozODozMiswMDowMPai/VkAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTJUMTM6Mzg6MzIrMDA6MDCH/0XlAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="width">width</h3>
<p>Stretch the symbol to precisely this width, in inches.</p>
<h4 id="notes-1">Notes</h4>
<ul>
<li>This parameter literally stretches the symbol and text to the desired width which will may distort the human readable text.</li>
<li>For information about resizing symbols read the article on <a href="#resizing-symbols">resizing symbols</a>.</li>
</ul>
<h4 id="example-27">Example</h4>
<p>A 2 inch wide Code 93 symbol:</p>
<pre><code>Data:    TERRY
Options: width=2
Encoder: code93
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAABICAMAAAAu9YzIAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAABgSURBVGje7c7bCQAgDAPAdP+lRaSi4ARyfvhIoF6SqppbetW6r3Q/+uj4zK7qnT0m7eL4OVcHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAT0NWgAQooTIakjLYMAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTJUMTM6Mzk6MDYrMDA6MDBjoLWXAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTEyVDEzOjM5OjA2KzAwOjAwEv0NKwAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h2 id="bar-properties">Bar Properties</h2>
<p>These are options that allow you to compensate for print gain or print loss resulting from the properties of the printing process or substrate.</p>
<h3 id="inkspread">inkspread</h3>
<p>For linear barcodes, the amount by which to reduce the bar widths to compensate for inkspread, in points.</p>
<p>For matrix barcodes, the amount by which the reduce the width and height of dark modules to compensate for inkspread, in points.</p>
<h4 id="notes-2">Notes</h4>
<ul>
<li>Negative values will increase the bar width.</li>
</ul>
<h4 id="example-28">Example</h4>
<p>Code 39 for a printer with very runny ink:</p>
<pre><code>Data:    TEZ
Options: inkspread=0.6
Encoder: code39
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE8AAABICAMAAACA71gMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZQTFRFAAAA////pdmf3QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAA/SURBVFjD7cyBCQAgCATAd/+lkySKZjhE8FEvqaruTE+ddDY37fm/fv/D4/F4PB6Px+PxeDwej8fj8Xg8XqcFW20MYeFfd6IAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTJUMTM6NDA6MTkrMDA6MDCMbPupAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTEyVDEzOjQwOjE5KzAwOjAw/TFDFQAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h3 id="inkspreadh">inkspreadh</h3>
<p>For matrix barcodes, the amount by which the reduce the width of dark modules to compensate for inkspread, in points.</p>
<p>Note: inkspreadh is most useful for stacked-linear type barcodes such as PDF417 and Codablock F.</p>
<h3 id="inkspreadv">inkspreadv</h3>
<p>For matrix barcodes, the amount by which the reduce the height of dark modules to compensate for inkspread, in points.</p>
<h3 id="dotty">dotty</h3>
<p>For matrix barcodes, render the modules as dots rather than squares. The dot radius can be adjusted using the <strong>inkspread</strong> option.</p>
<h2 id="text-properties">Text Properties</h2>
<h3 id="includetext">includetext</h3>
<p>Show human readable text for data in symbol.</p>
<h4 id="notes-3">Notes</h4>
<ul>
<li>If a character in the data does not have a printable representation then it is not displayed</li>
</ul>
<h4 id="example-29">Example</h4>
<p>Display the text encoded in this Code 39 symbol:</p>
<pre><code>Data:    SEE ME
Options: includetext
Encoder: code39
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAH8AAABQCAMAAAAHmVrCAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////u7u7zMzMd3d3iIiIqqqq3d3dmZmZVVVV7u7uREREZmZm/l3k7QAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAADrSURBVGje7dHRboMwDIVh2zEhTfv+zztWtRDjkk2atKs/ooIjDv4IFVFVUZHXT/ezDHeOlPP3WeKd9yS96h8twcfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/q/9e8rqWPceU8+em7tKn/tDaLs10XMWXOsS1mbVJPi+rcWLuB0+0uo+etudxLH8e1/ns31QXm/Sjt+3f47ilxIEeXyfltP/aus36wRNd19LjH9Di/i2+3zmffdvm26QfPckD8vcuZZKT37var/vZ91qXcd7d/WHXOT3+6OEL/9DPvvZV/299ARVLFW228K3PAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEzOjQxOjE3KzAwOjAwM5HrygAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMzo0MToxNyswMDowMELMU3YAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="textfont">textfont</h3>
<p>The PostScript font name for text.</p>
<h4 id="notes-4">Notes</h4>
<ul>
<li>The font name must be the literal name of a PostScript font that is available to the system.</li>
<li>This option should be used in combination with the <strong>includetext</strong> option.</li>
<li>The PostScript font name for a font file can be determined with the following command from the fontconfig library:
<ul>
<li><code>fc-scan --format &quot;%{postscriptname}\n&quot; /usr/share/fonts/truetype/somefont.ttf</code></li>
</ul></li>
</ul>
<h4 id="example-30">Example</h4>
<p>Customise the human readable text of this USPS POSTNET symbol</p>
<pre><code>Data:    64501
Options: includetext textfont=Times-Roman textsize=9
Encoder: postnet
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAAAQCAMAAADNs8o/AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAC1QTFRFAAAA////3d3d7u7uzMzMd3d3iIiIu7u7REREqqqqVVVVZmZmmZmZIiIiMzMz7i0rqQAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACjSURBVDjL7ZLRDsMgCEVBvUWt2/9/7jb3sF66ROfbkhISwQAHUBHtIl0/It6iQ9SFU6J8KSFygf4DJAf93ZoLvUDroPdzBR1IHAWMpIMSPGgzcpFBfkDZOMHqBCicghKDwu4agWl2M+YJENC44diMQe3WfFXwzFOgbFrT8bKouTKx+qoroGcOCATsp2X51dWF1QUY3DVPhFaokddncBnlPvi4D120B6Szs3gQAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEzOjQzOjAxKzAwOjAwmB4OUwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMzo0MzowMSswMDowMOlDtu8AAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="textsize">textsize</h3>
<p>The font size of the text in points.</p>
<h4 id="note">Note</h4>
<ul>
<li>This option should be used in combination with the <strong>includetext</strong> option.</li>
</ul>
<h4 id="example-31">Example</h4>
<p>Customise the human readable text of this USPS POSTNET symbol</p>
<pre><code>Data:    64501
Options: includetext textfont=Times-Roman textsize=9
Encoder: postnet
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAAAQCAMAAADNs8o/AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAC1QTFRFAAAA////3d3d7u7uzMzMd3d3iIiIu7u7REREqqqqVVVVZmZmmZmZIiIiMzMz7i0rqQAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACjSURBVDjL7ZLRDsMgCEVBvUWt2/9/7jb3sF66ROfbkhISwQAHUBHtIl0/It6iQ9SFU6J8KSFygf4DJAf93ZoLvUDroPdzBR1IHAWMpIMSPGgzcpFBfkDZOMHqBCicghKDwu4agWl2M+YJENC44diMQe3WfFXwzFOgbFrT8bKouTKx+qoroGcOCATsp2X51dWF1QUY3DVPhFaokddncBnlPvi4D120B6Szs3gQAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEzOjQzOjAxKzAwOjAwmB4OUwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMzo0MzowMSswMDowMOlDtu8AAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="textgaps">textgaps</h3>
<p>The inter-character spacing of the text.</p>
<h4 id="note-1">Note</h4>
<ul>
<li>This option should be used in combination with the <strong>textxalign</strong> option.</li>
</ul>
<h3 id="alttext">alttext</h3>
<p>Specify text to display other than what is provided in the data field.</p>
<h4 id="note-2">Note</h4>
<ul>
<li>This option should be used in combination with the includetext option.</li>
</ul>
<h2 id="text-positioning">Text Positioning</h2>
<h3 id="textxalign">textxalign</h3>
<p>The <strong>textxalign</strong> option is used to specify where to horizontally position the text.</p>
<ul>
<li><code>textxalign=offleft</code></li>
<li><code>textxalign=left</code></li>
<li><code>textxalign=center</code></li>
<li><code>textxalign=right</code></li>
<li><code>textxalign=offright</code></li>
<li><code>textxalign=justify</code></li>
</ul>
<h4 id="notes-5">Notes</h4>
<ul>
<li>By default (in the absence of <strong>textxalign</strong> or <strong>textyalign</strong>), each character of text is placed immediately below the corresponding modules where this is possible.</li>
<li>Where there isn't such a direct relationship then the default is to position the text centrally beneath the symbol.</li>
</ul>
<h3 id="textyalign">textyalign</h3>
<p>The <strong>textyalign</strong> option is used to specify where to vertically position the text.</p>
<ul>
<li><code>textyalign=below</code></li>
<li><code>textyalign=center</code></li>
<li><code>textyalign=above</code></li>
</ul>
<h4 id="notes-6">Notes</h4>
<ul>
<li>By default (in the absence of <strong>textxalign</strong> or <strong>textyalign</strong>), each character of text is placed immediately below the corresponding modules where this is possible.</li>
<li>Where there isn't such a direct relationship then the default is to position the text centrally beneath the symbol.</li>
</ul>
<h3 id="textxoffset">textxoffset</h3>
<p>The horizontal position of the text in points relative to the default position.</p>
<h3 id="textyoffset">textyoffset</h3>
<p>The vertical position of the text in points relative to the default position.</p>
<h2 id="border-properties">Border Properties</h2>
<h3 id="showborder">showborder</h3>
<p>Display a border around the symbol.</p>
<h4 id="example-32">Example</h4>
<p>Display a customised border around this Codabar symbol:</p>
<pre><code>Data:    A3+14-63B
Options: includetext showborder borderwidth=2 borderbottom=8
Encoder: rationalizedCodabar
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIcAAABTCAMAAACCluQBAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAA////7u7uu7u7qqqqzMzMmZmZd3d3VVVViIiI3d3dZmZmREREyWaZ3AAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEZSURBVGje7dLh1sIgCAZgEZXU7v96c6sFTL7z/ezPS+00poNnrJQQt6ArEr2z5M4/n2QOv3peuXbSdwe5+7SSr//pDAcccMABBxxwwAEHHHDAAQcccMABBxxwwAEHHHDAAQcccMABBxxwwAEHHHDAAcdPHfp7HDnbu8l6b2fWodc195WS6RU5iEs1i6W08k2OSroirEl+MEXRSwkqjeabhA7q3a+LEl0zm3UOHVzjSuukb5tvjlqbfWwWrfWno3LsaMU8t6kkVGXbfHMIs7PmKxsyp4zQ0TUZsuLatTr3oNLZwz5s5Gj2Tbyb/DuPVbaF8zi/e6WjwTZA75BJeWrrZv+nddgec2qPMfc5nxMoLajEzzWzeB4IEy+51hq4/62VwwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMlQxMzo0NDoyMCswMDowMJ6QGeMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTJUMTM6NDQ6MjArMDA6MDDvzaFfAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<h3 id="borderwidth">borderwidth</h3>
<p>Width of the border, in points.</p>
<h3 id="borderleft">borderleft</h3>
<p>Gap between the left edge of the border and the symbol, in points.</p>
<h3 id="borderright">borderright</h3>
<p>Gap between the right edge of the border and the symbol, in points.</p>
<h3 id="bordertop">bordertop</h3>
<p>Gap between the top edge of the border and the symbol, in points.</p>
<h3 id="borderbottom">borderbottom</h3>
<p>Gap between the bottom edge of the border and the symbol, in points.</p>
<h2 id="symbol-colors">Symbol Colors</h2>
<h3 id="barcolor">barcolor</h3>
<p>Color of the bars or dark modules, either as a hex <code>RRGGBB</code> value or a hex <code>CCMMYYKK</code> value.</p>
<h3 id="backgroundcolor">backgroundcolor</h3>
<p>Color of the light background or light modules, either as a hex <code>RRGGBB</code> value or a hex <code>CCMMYYKK</code> value.</p>
<h3 id="bordercolor">bordercolor</h3>
<p>Color of the border, either as a hex <code>RRGGBB</code> value or a hex <code>CCMMYYKK</code> value.</p>
<h3 id="textcolor">textcolor</h3>
<p>Color of the respective component, either as a hex <code>RRGGBB</code> value or a hex <code>CCMMYYKK</code> value.</p>
<h4 id="examples-51">Examples</h4>
<p>Colorized Code 11 symbol using the RGB colour space:</p>
<pre><code>Data:    0123456789
Options: includetext barcolor=AA0000 textcolor=008888 backgroundcolor=FFFF60 showborder bordercolor=0000FF textyoffset=-8
Encoder: code11
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAABSCAMAAAC4wWwpAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADNQTFRFAAD///9gqgAAAAn4ABLw////qtjYiMjImdDQu+Dgd8DA7vj4VbCwRKioZri4zOjo3fDwqxmelwAAAAFiS0dEBfhv6ccAAAAJcEhZcwAACxMAAAsTAQCanBgAAAFMSURBVGje7dJhc4MgDAZgxUECbNL//2vHaBJTtV57+7LbvTmrXBLogzJNfyZmjTCHEO5PGY+f3GeXO/RsvT81Gdn4cb7NnEdWAhBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBJB/ADGQawl2d9N2PT57Xg9uJd/lISexXGSWZbqMj+Pc5WSZfcQpHiMR5/EsWTKUOEnNRrF+SrkU1yjVr1JWmcEs1WajkziD0Lh6ZJ3Xn8XKOiItb6Xc3DJs1bJb91UIj3/2kL4bM5WmGS0Tk7wHTskoikopSR/XuP4W0pJVK+n+nFNyHUm7VKTW5N30r/TeGzl+Guewf8iZ2HLFtsC7tpjG9dj3IkQPK6/rfdm2HT3eDuttlWWL5Wo/1WrXb9QPa9LtUH0LEuvz/nirl7l2sVq9PV82fgPGvE59aYVZogAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMlQxMzo0NToxNiswMDowMJwNQAQAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTJUMTM6NDU6MTYrMDA6MDDtUPi4AAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" /></p>
<p>Colorized Code 11 symbol using the CMYK colour space:</p>
<pre><code>Data:    0123456789
Options: includetext barcolor=AA000000 textcolor=00888844 backgroundcolor=CCCC6000 showborder bordercolor=00FF0088
Encoder: code11
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAABRCAMAAAA+VR6HAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAFFQTFRFhgBOV1B6D8PzGr7pXVJ4ZFR2mCVRnzRTnCxSlB1QoztTiQdOqkpVrlJWp0NUkRZQ////4b2y7tnT3LOn8uPe5ca96dDI+/b02Kqcz5eG9+zpbRa/aAAAAAFiS0dEEJWyDSwAAAAJcEhZcwAACxMAAAsTAQCanBgAAAFOSURBVGje7dHtboMwDAVQQhml7CshicN4/wcdBNsN0Far9mearkUby3bCAarqz4SRqE1d1+vKef7xvylqh5nr7NLjTPPtft1pcpUDEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEkH8AkfVUjKzZSbOmMQrZx1J7Mfv+soNv22w7W8gx2nN3yWt/4cq57VruaVa9vnG774tB7r73/Qfv6Drufmp2DFvZY7h8zTEMXJlXr23JnLSvrSEUx0Tt+t25t+IWJOY7lxBrg5p8kIq0XXTEO4mUIigi4rmY7PhbSCDtJifPVzi5NiPdrmRdCPxuLMXn3sjx0xQOvcMwuKg1r48Qd2OW8rWd+yGEXMyCOI7rseHL+1FefpRjp5GP9VpLjgQS5BtRlG4gl56C2HR/3k7pYS08OC1N94+131Pbb3CKDTMKAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEzOjQ1OjQ3KzAwOjAwcppF1AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMzo0NTo0NyswMDowMAPH/WgAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h2 id="ean-upc-add-ons">EAN-UPC Add Ons</h2>
<h3 id="addontextfont">addontextfont</h3>
<p>The font name of the add on text.</p>
<h4 id="notes-7">Notes</h4>
<ul>
<li>The font name must be the literal name of a PostScript available font.</li>
<li>These options must be used in combination with the <strong>includetext</strong> option.</li>
</ul>
<h3 id="addontextsize">addontextsize</h3>
<p>The size of the add on text, in points</p>
<h4 id="notes-8">Notes</h4>
<ul>
<li>These options must be used in combination with the <strong>includetext</strong> option.</li>
</ul>
<h4 id="example-33">Example</h4>
<p>Customise the human readable text of this USPS POSTNET symbol</p>
<pre><code>Data:    64501
Options: includetext textfont=Times-Roman textsize=9
Encoder: postnet
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAAAQCAMAAADNs8o/AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAC1QTFRFAAAA////3d3d7u7uzMzMd3d3iIiIu7u7REREqqqqVVVVZmZmmZmZIiIiMzMz7i0rqQAAAAFiS0dEAf8CLd4AAAAJcEhZcwAACxMAAAsTAQCanBgAAACjSURBVDjL7ZLRDsMgCEVBvUWt2/9/7jb3sF66ROfbkhISwQAHUBHtIl0/It6iQ9SFU6J8KSFygf4DJAf93ZoLvUDroPdzBR1IHAWMpIMSPGgzcpFBfkDZOMHqBCicghKDwu4agWl2M+YJENC44diMQe3WfFXwzFOgbFrT8bKouTKx+qoroGcOCATsp2X51dWF1QUY3DVPhFaokddncBnlPvi4D120B6Szs3gQAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEzOjQzOjAxKzAwOjAwmB4OUwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMzo0MzowMSswMDowMOlDtu8AAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="addontextxoffset">addontextxoffset</h3>
<p>Overrides the default horizontal positioning of the add on text.</p>
<h3 id="addontextyoffset">addontextyoffset</h3>
<p>Overrides the default vertical positioning of the add on text.</p>
<h2 id="ean-upc-guards">EAN-UPC Guards</h2>
<h3 id="guardwhitespace">guardwhitespace</h3>
<p>Display white space guards.</p>
<h4 id="example-34">Example</h4>
<p>ISBN-13 with tiny white space guard:</p>
<pre><code>Data:    978-1-873671-00
Options: includetext guardwhitespace guardwidth=3 guardheight=3
Encoder: isbn
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHUAAABWCAMAAADG4ikWAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////zMzM7u7umZmZu7u7d3d33d3dqqqqZmZmiIiIREREAAAAMzMzVVVVERERIiIis0JylgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAKYSURBVGje7ZpJgtwgDEUFSNjYLvv+t40mhhqyyjKiuwAN/CcwSwC0pQzfLRcEIKIKUDec3j4zpyakbTNPMnsmQdaQ9UMVd6xAWAjqjgXTDql5vEBCYMUE0LTXhtT1zKkJSadJlNWeSZy11d4PVZA4STL3XGLZoG9rg9w0jX8Za5cZgt0pCamIdE3dnlRSh/VTlfRkGh/xjoSALXdq2uQwXJRy5bNzQZuK841KiLhQLYug//sqVRWRKiVYPQhlfEKoLFAR1lKXbbizop+kWDgXjBOWbVg/VNtBiffIKDyIGu4Zy9yrV86VUD9hWeAnbM6iN6RV2bBUXN6S+JO10U9Vw/+4wpCXi51/JnxN81+z8i/V/62d8nfKTw2wmTlOnVqS5ow/6P6Z7WvHYJOgBjWoQQ1qUIMa1KAGNahBDWpQgxrUoAY1qEENalCDGtSgBjWoQQ1qUP+Nmou/SpAIEtnLl+JPD+whiVo9ltUynUQ4Az17o2Uw+U9qvl50b2/Us0J35kceV5jlsXztYqkOXfS0sciz94Nu7IPLf1LbwVVdnSqNWOdhJwfoPGUvblms8Ix/kl3vDGnvAc9O7CyvPrj8J5WIazwXauUSRK691ImrpTF5Z/PS7HJktEcX9YKeLZx69sHlJ9XG8rDkSj30Hcv53LXrTEtjkK6najYd13GXGdBs4cDZB5df9qqXFeh+aKGiVI13YsmuMyy0HUHd7YSJJdO9BL6pLv9FleLveeJ7gbHyXcdj+prIz+lYA54tN4AFffiU95VyVWifXj3KNpb0L6WWxV62SPbMe8URWG4BC/rwKd/b6zqu+Q7H9PL4YKLTLY9d1/H4KzR6dOpF+C1ozy5V+PAuP1vCn878VwunVfGHojt9+CH/BxLsoXrhB4UQAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAyLTEyVDEzOjQ2OjU1KzAwOjAwwpjvYAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMi0xMlQxMzo0Njo1NSswMDowMLPFV9wAAAA/dEVYdFNvZnR3YXJlAEJhcmNvZGUgV3JpdGVyIGluIFB1cmUgUG9zdFNjcmlwdCAtIFZlcnNpb24gMjAxNS0wMS0xMcQCIAwAAAA8dEVYdFNvdXJjZQBodHRwOi8vd3d3LnRlcnJ5YnVydG9uLmNvLnVrL2JhcmNvZGV3cml0ZXIvZ2VuZXJhdG9yL39acHEAAAAASUVORK5CYII=" /></p>
<h3 id="guardwidth">guardwidth</h3>
<p>Width of the whitespace guards, in points.</p>
<h3 id="guardheight">guardheight</h3>
<p>Height of the whitespace guards, in points.</p>
<h3 id="guardleftpos">guardleftpos</h3>
<p>Override the default horizontal position of the left whitespace guard.</p>
<h3 id="guardrightpos">guardrightpos</h3>
<p>Override the default horizontal position of the right whitespace guard.</p>
<h3 id="guardleftypos">guardleftypos</h3>
<p>Override the default vertical position of the left whitespace guard.</p>
<h3 id="guardrightypos">guardrightypos</h3>
<p>Override the default vertical position of the right whitespace guard.</p>
<h4 id="example-35">Example</h4>
<p>EAN-8 with very mangled white space guards:</p>
<pre><code>Data:    01335583
Options: includetext guardwhitespace guardleftpos=14 guardrightpos=7 guardleftypos=15 guardrightypos=4
Encoder: ean8
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAABNCAMAAAAVUFMuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAAqqqqd3d33d3d7u7umZmZzMzMZmZmREREERERu7u7IiIiMzMzVVVViIiI17SJCgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAFESURBVFjD7ZPRkoMgDEUTIyCC9f//dpMAVlzdlx0enEk6esVrT2+CBegK+cNnFURdo66aQLU6gXI0964MbGADG9jABjawgQ1sYAMb2MAGNrCBDWzgf4IRx4BxTGLEMaPoh/2GxONmPPCteOEf5CVgHJYYcRAYbkIXY6JZV5OI8xQOUd8TkT8EfvlwE1qNJdKa5NnMZ7cttE5N1I+FWGX7XP0ncFgd+A8AITLYRz2qHK0f/abMnfX+0yh2fmYuPoNnHsf+aSK+y16SVpk5Ru8/bh7RsRkyEAhbnpuIn5D2jZpwY3nt/MfX7QqGeYlNNHHQjqqkNQB1/mPxxHjODZyS/kyVU4IqNcbVvyuZGi0NzIOTDaoiJXsgd77CMU7+c+150akp2G1bzFMTKRf5Mpxl9Wf/r8zJnVaprNL3ZiiXvaTuS/AD2QMSB8V6bgkAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMTJUMTM6NDc6NDErMDA6MDAVv6DTAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAyLTEyVDEzOjQ3OjQxKzAwOjAwZOIYbwAAAD90RVh0U29mdHdhcmUAQmFyY29kZSBXcml0ZXIgaW4gUHVyZSBQb3N0U2NyaXB0IC0gVmVyc2lvbiAyMDE1LTAxLTExxAIgDAAAADx0RVh0U291cmNlAGh0dHA6Ly93d3cudGVycnlidXJ0b24uY28udWsvYmFyY29kZXdyaXRlci9nZW5lcmF0b3Ivf1pwcQAAAABJRU5ErkJggg==" /></p>
<h1 id="knowledge-base">Knowledge Base</h1>
<h2 id="faqs">FAQs</h2>
<p><strong>How do I resize symbols without stretching the text?</strong></p>
<p>See this article on <a href="https://github.com/bwipp/postscriptbarcode/wiki/Resizing-Symbols">resizing symbols</a>.</p>
<p><strong>How do I include BWIPP in a messy PostScript document?</strong></p>
<p>Many automatically generated PostScript documents include boilerplate resources (procedure sets, etc.) that pollute the VM environment such then when the BWIPP resources are defined or invoked the meaning of standard operators has been redefined leading to erratic or broken behaviour.</p>
<p>You can often protect against this by wrapping a standard invocation such as this:</p>
<pre><code>100 300 moveto (1234567) () /qrcode /uk.co.terryburton.bwipp findresource exec
</code></pre>
<p>with code that removes the user dictionaries from the stack such as this:</p>
<pre><code>countdictstack array dictstack dup length 3 sub 3 exch getinterval cleardictstack
100 300 moveto (1234567) () /qrcode /uk.co.terryburton.bwipp findresource exec
{begin} forall
</code></pre>
<p>It may occasionally be necessary to wrap the BWIPP resource definitions using the same technique.</p>
<p><strong>Scanning ISBNs</strong></p>
<p>When an ISBN symbol is read by a barcode scanner that echos digits to a PC, the data string that is returned is most likely going to be the plain contents of the EAN-13 encoded symbol, i.e. 9781565924796, not 1-56592-479-7. Whether the scanner returns the former string or the latter they nevertheless represent the one same value despite appearing somewhat different.</p>
<p><strong>How do I integrate barcodes into my website or application?</strong></p>
<p>BWIPP is essentially a versatile library and is not necessarily a &quot;turn key&quot; solution by itself. <a href="https://groups.google.com/d/topic/postscriptbarcode/UOmONFc6cGQ/discussion" class="uri">https://groups.google.com/d/topic/postscriptbarcode/UOmONFc6cGQ/discussion</a></p>
<p>If you are a programmer then there are several language bindings that allow you to work with BWIPP without direct knowledge of PostScript. If you are not a programmer then there are a number of frontends that may be useful.</p>
<h2 id="resizing-symbols">Resizing Symbols</h2>
<p>To create a barcode of some required width and height (without stretching the text) perform the following steps, in order.</p>
<p>Starting with this example:</p>
<pre><code>0 0 moveto (977147396801) (includetext)
/ean13 /uk.co.terryburton.bwipp findresource exec
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGkAAABNCAMAAACSYbooAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAA7u7umZmZd3d33d3du7u7qqqqzMzMMzMzVVVVERERIiIiZmZmiIiIREREKPMjrAAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAGaSURBVFjD7ZLLksQgCEVR0Y5R4///7fDStqcXU7PHVIoIXI5CAPYK/AR++Vv2/BV0czjFtbNVKCHLDKd21QvgJCc5yUlOcpKTnOQkJznJSU5ykpOc5CQnOclJTnKSk5zkJCc56Q9STJg3qSCvbIacL40Bwoqx4PqlvbCwkQBprKBqd3asN7bXBylkM1SqFwUFWLFYBwtOLVbsD4DtxsTGKtWSs6NkP5PgdZGk6rMNhiCkMq3N5EwkoPfQ5hbhGlA67SZctEv30hYqnbXXSH2J4SBlwS4jpFhz2M5MV33uU5tmLBEESAHGa7qQkqTwkzrFT9LUfpkR0v2y66rzqj2fWpx1tsS36C0LHjZJjqfdA2wdD1LRu5iR7GeYdDnzmKcWCXg1KO0i6BeJx7QnQ2l7jXQayZ78Y/OHOEtZlZaWJ2e9JEOjsoJCmiNaJs8Rx5vU8mlWB7S0OGkUInprM92pNBkQIXhcWpC1cgpbd5017t1R44ukzljr7K8PLXb2RBvX04eek7Uo/Vj3L/C/Vco+mWmzei41+R0/1g+7MRe7S3bLPAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMlQxMzoyMDo1NSswMDowMCczVWQAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTJUMTM6MjA6NTUrMDA6MDBWbu3YAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" alt="Original barcode" /></p>
<p>Find the uniform (same x and y) scale factor that makes your output of the required <strong>width</strong>:</p>
<pre><code>gsave
2 2 scale      %  &lt;-- Add a line like this
0 0 moveto (977147396801) (includetext)
/ean13 /uk.co.terryburton.bwipp findresource exec
grestore
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANEAAACZCAMAAACG7y/cAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAAu7u7VVVVERERZmZmzMzMd3d37u7uqqqqREREMzMzmZmZIiIi3d3diIiIqXXUYwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAQQSURBVHja7ZYLjtggDEQDIYEQCPe/bfkGG0hVVaraSoN2tUswHh7YmG2bmxDtN7Xyt33v4+1bs+692bJbzb6pYp/FfVIrrjuur3sBEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiED0bxD9ifZ3fP/3RHJXQh3nYkT0psdebqeQ1KVRojrglpcVQu1yIBp0k9HtmuNDCbE350b7aPl0IaKbLe9AfbuoG52J6zeIDk60iyWRrgqBEQ26R4SOazu2NnbXGRHIx7H40ze962bLxGRe3zKrmkMo8xkZRnmz6gXBiIIY4qlYyrKyOPrQyOC6WqjoSirhylkfpru34n6SpSdCVfcplnGefn3vdVv2d+Nnop0tvPZc2mA6cKqRqFjq6tkS1W3QjQyygO154309Cp1DLG1FOik36YZqGffHNN9tUIr7i+jqsKSnBScytwicqFraaqQTA4loquuq+qNLmNo6w76U71+ma9vS0peXqC6I1wOytq+YI4stSlouY9XppxkwIqp7sE0Lle/I59hWLYWadG1LQ0ZUEu5s/0xEWjiixnqE6Ir7yYn4vBSUkhFR3eTIae1M3YsM4YrNXUWe7t3yG6nSVt++B1Gz4kRPDYFVr3s2Sj2ciFm6PUa/o765brw8fAomVTbhvIWyPl8WPT63kk8ropPeDK7MC+KLiM/+6uXjZ0TMMmXzLalvrptgtExJn6PozNkv/Egkl6vYgsph2nzHQuCtStf/cJIVv1+aU697zlnPiIZ5Uh605G2Dbqs25YpOWx7v67jQ6xeIrni62lDXOhUwTc5048Lus/d6fkS+BCjRYJmpPe8T3Va0Tc2q0nP5LlCdyAy6aUYs6/bjLJavLdPdTL3uWU7vidFyY7fppNuyP6aXJAmTYdp9JleZEI/TL3nSftjV51CLwar3M6Ju2ReyjIKiu7cT9e1CzC2Dtpv96hXzJYpl9xh37ngrelgRWRY8dgilIUPZLr6WDYRHAdcN9QXx5KNtGVdi0L3VSU+6enEOrqSAI+860gzbVzPu8icRtbTve4ceMNeNFegsNjav/TaFwZexq8A+k67nt007WR+uQ0yJnNvFsvkacvubiFrGr9bJWG/I43nSjWVJX+4uNvH96YMMtl5uQaggnSLPCtsvi7f1lTw3KW1j02xf9ZBG30TM8lKlujCgUVdTG1aP2tgx655Loqj4Pj/+UDNRQZ/TZ677BK17CJ2a9tLYuf1a+wHBNUk4g1j0UQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMlQxMzoyMTozNyswMDowMJkBJvQAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTJUMTM6MjE6MzcrMDA6MDDoXJ5IAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" alt="Uniformly scaled barcode" /></p>
<p>Add a height option that adjusts the bar height appropriately (taking the scaling into account):</p>
<pre><code>gsave
2 2 scale
% Added height=0.8 option to adjust height
0 0 moveto (977147396801) (includetext height=0.8)
/ean13 /uk.co.terryburton.bwipp findresource exec
grestore
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANEAAAB8CAMAAADAZqXtAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADBQTFRF////AAAAu7u7VVVVERERZmZmzMzMd3d37u7uqqqqREREMzMzmZmZIiIi3d3diIiIqXXUYwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAPvSURBVHja7ZYLjtggDEQDIYEQCPe/bfkGG0hVVaqqqoN2tUswHh7YmG2bmxDtN7Xyt33v4+1bs+692bJbzb6pYp/FfVIrrjuur3sBEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiED0PxH9ifZ3fP/zRHJXQh3nYkT0psdebqeQ1KVRojrglpcVQu1yIBp0k9HtmuNDCbE350b7aPl0IaKbLe9AfbuoG52J6zeIDk60iyWRrgqBEQ26R4SOazu2NnbXGRHIx7H40ze962bLxGRe3zKrmkMo8xkZRnmz6gXBiIIY4qlYyrKyOPrQyOC6WqjoSirhylkfpru34n6SpSdCVfcplnGefn3vdVv2d+Nnop0tvPZc2mA6cKqRqFjq6tkS1W3QjQyygO154309Cp1DLG1FOik36YZqGffHNN9tUIr7i+jqsKSnBScytwicqFraaqQTA4loquuq+qNLmNo6w76U71+ma9vS0peXqC6I1wOytq+YI4stSlouY9XppxkwIqp7sE0Lle/I59hWLYWadG1LQ0ZUEu5s/0xEWjiixnqE6Ir7yYn4vBSUkhFR3eTIae1M3YsM4YrNXUWe7t3yG6nSVt++B1Gz4kRPDYFVr3s2Sj2ciFm6PUa/o765brw8fAomVTbhvIWyPl8WPT63kk8ropPeDK7MC+KLiM/+6uXjZ0TMMmXzLalvrptgtExJn6PozNkv/Egkl6vYgsph2nzHQuCtStf/cJIVv1+aU697zlnPiIZ5Uh605G2Dbqs25YpOWx7v67jQ6xeIrni62lDXOhUwTc5048Lus/d6fkS+BCjRYJmpPe8T3Va0Tc2q0nP5LlCdyAy6aUYs6/bjLJavLdPdTL3uWU7vidFyY7fppNuyP6aXJAmTYdp9JleZEI/TL3nSftjV51CLwar3M6Ju2ReyjIKiu7cT9e1CzC2Dtpv96hXzJYpl9xh37ngrelgRWRY8dgilIUPZLr6WDYRHAdcN9QXx5KNtGVdi0L3VSU+6enEOrqSAI+860gzbVzPu8icRtbTve4ceMNeNFegsNjav/TaFwZexq8A+k67nt007WR+uQ0yJnNvFsvkacvubiFrGr9bJWG/I43nSjWVJX+4uNvH96YMMtl5uQaggnSLPCtsvi7f1lTw3KW1j02xf9ZBG30TM8lKlujCgUVdTG1aP2tgx655Loqj4Pj/+UDNRQZ/TZ677BK17CJ2a9tLYuf1a+wH1zD6SdNLupAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMi0xMlQxMzoyMjowMSswMDowMJ9pry4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDItMTJUMTM6MjI6MDErMDA6MDDuNBeSAAAAP3RFWHRTb2Z0d2FyZQBCYXJjb2RlIFdyaXRlciBpbiBQdXJlIFBvc3RTY3JpcHQgLSBWZXJzaW9uIDIwMTUtMDEtMTHEAiAMAAAAPHRFWHRTb3VyY2UAaHR0cDovL3d3dy50ZXJyeWJ1cnRvbi5jby51ay9iYXJjb2Rld3JpdGVyL2dlbmVyYXRvci9/WnBxAAAAAElFTkSuQmCC" alt="Truncated barcode" /></p>
<p>The result should now be of the intended dimensions with properly scaled (not stretched) text.</p>
<h2 id="developing-a-frontend-to-bwipp">Developing a Frontend to BWIPP</h2>
<p>There are a number of frontends to BWIPP that vary in terms of the functionality that they expose and the way that they express this through their API or GUI, etc.</p>
<p>It would be nice to unify some of these projects but in the meantime this document attempts to provide some guidelines to apply when developing something that places BWIPP in the hands of developers and users.</p>
<p>The author would ideally like any language binding, library or graphical frontend to be representative of the complete functionality of the BWIPP resource and to be maintainable with minimal effort and these guideline help to achieve this goal.</p>
<h4 id="make-early-contact-with-the-bwipp-author">Make Early Contact with the BWIPP Author</h4>
<p>Contact the author of BWIPP whilst you're still experimenting. I will try not to insist on my own way as it's you that will end up supporting your creation so I want you to be happy with it, but it will help everyone if there is some consistency between your code and the next person's.</p>
<p><strong>Author's commitment:</strong> If I know about your project then I will make a best efforts commitment to assist with end user support and developer support for any library or application that makes a genuine attempt to adopt the principles given here. Such projects should also feel free to adopt the <a href="https://groups.google.com/forum/#!forum/postscriptbarcode">BWIPP mailing list</a> if they are so inclined and to request access to extend this wiki.</p>
<h4 id="use-the-bwipp-c-helper-library-and-bindings">Use the BWIPP C helper library and bindings...</h4>
<p>Be aware that we have produced a C library and language-specific bindings with a common API to help with manipulating the BWIPP resources: <a href="https://github.com/bwipp/postscriptbarcode/tree/master/libs" class="uri">https://github.com/bwipp/postscriptbarcode/tree/master/libs</a></p>
<p>You should attempt to use these where possible as it takes most of the pain out of working with the PostScript. If the API doesn't support something that you need then we can extend the interface as necessary.</p>
<h4 id="-or-at-least-parse-the-bwipp-metadata">... or at least parse the BWIPP metadata</h4>
<p>If you choose to work directly with the PostScript then it is better to parse the inline metadata rather than embedding a load of static data in your code.</p>
<p>You should support new barcode formats automatically by scanning the barcode.ps metadata for <code>BEGIN/END ENCODER</code> blocks. From these extract descriptions, example data, options, etc. by using the <code>DESC</code>, <code>EXAM</code>, <code>EXOP</code>, ... stanzas within the <code>BEGIN/ENCODER ENCODER</code> blocks.</p>
<p>Example BWIPP metadata for an encoder:</p>
<pre><code>% --BEGIN ENCODER ean8--
% --REQUIRES preamble raiseerror renlinear ean5 ean2--
% --DESC: EAN-8
% --EXAM: 02345673
% --EXOP: includetext guardwhitespace
% --RNDR: renlinear
... PostScript resource definition here ...
% --END ENCODER ean8--
</code></pre>
<p>The best strategy is for libraries and graphical frontends to be light on compiled-in data and can therefore be enhanced by simply replacing the barcode.ps file.</p>
<p>To fully meet this objective may require extending the barcode.ps metadata to describe the individual options that are available for each encoder. The BWIPP author is certainly interested in having such a discussion so please make contact regarding your requirements.</p>
<h4 id="let-users-drive-bwipp-directly">Let Users Drive BWIPP Directly</h4>
<p>Whether part of your design or as a fall back, allow advanced users to specify the data, options and encoder directly. This will allow them to access BWIPP functionality that you haven't anticipated or chosen to expose via your API or GUI.</p>
<h4 id="use-bwipps-error-reporting">Use BWIPP's Error Reporting</h4>
<p>Use the BWIPP error reporting mechanism to provide specific error messages to users so that they can understand why a given input is invalid.</p>
<p>The preferred way to do this is to wrap the BWIPP invocation in a &quot;stopped context&quot; which allows you to handle BWIPP-specific exceptions. For example, the following will invoke BWIPP and on error will emit formatted, descriptive text of the error (e.g. <code>BWIPP ERROR: EAN-13 must be 12 or 13 digits</code>) to STDERR which the calling program can recognise as an error and prompt the user:</p>
<pre><code>{  % &quot;try&quot; BWIPP invocation
  0 0 moveto (ABC) () /code39 /uk.co.terryburton.bwipp findresource exec
  showpage
} stopped {  % &quot;catch&quot; all exceptions
  $error /errorname get dup length string cvs 0 6 getinterval (bwipp.) ne {
    stop  % Rethrow non-BWIPP exceptions
  } if
  % Handle BWIPP exceptions, e.g. emit formatted error to stderr
  (%stderr) (w) file
  dup (\nBWIPP ERROR: ) writestring
  dup $error /errorname get dup length string cvs writestring
  dup ( ) writestring
  dup $error /errorinfo get dup length string cvs writestring
  dup (\n) writestring
  dup flushfile
} if
</code></pre>
<p>Less advised, but which may be useful in some circumstances, it is possible to override the PostScript VM's default handleerror procedure to recognise and take some special action when handling BWIPP-specific exceptions. For example, the following will invoke <code>barcode.ps</code> and on error will emit formatted, descriptive text of the error (e.g. <code>BWIPP ERROR: EAN-13 must be 12 or 13 digits</code>) to STDERR which the calling program can recognise as an error and prompt the user:</p>
<pre><code>%!PS
errordict begin
/handleerror {
  $error begin
  errorname dup length string cvs 0 6 getinterval (bwipp.) eq {
    (%stderr) (w) file
    dup (\nBWIPP ERROR: ) writestring
    dup errorname dup length string cvs writestring
    dup ( ) writestring
    dup errorinfo dup length string cvs writestring
    dup (\n) writestring
    dup flushfile end quit
  } if
  end //handleerror exec
} bind def
end

% If necessary, set up anything else specific to the environment just here.

% Include the BWIPP resource, either directly or from PS
(barcode.ps) run

% Now make the calls to BWIPP
0 0 moveto (ABC) () /code39 /uk.co.terryburton.bwipp findresource exec
</code></pre>
<h4 id="locating-the-resource">Locating the Resource</h4>
<p>Allow the location of the <code>barcode.ps</code> file to be configured by the user so that non-admins users can provide a local version and distributions that deprecate bundled libraries can provide a separately packaged version.</p>
<p>In any case, use the following search order to locate the <code>barcode.ps</code> resource:</p>
<ol>
<li><code>[%USER_SPECIFIED_LOCATION%]</code></li>
<li><code>~/.[%APP_RC_DIRECTORY%]</code> (a user's own replacement)</li>
<li><code>[%APP_INSTALL_DIR%]</code> (a version you have bundled)</li>
<li><code>/usr/share/postscriptbarcode</code> (Fedora's postscriptbarcode package)</li>
<li><code>/usr/share/libpostscriptbarcode</code> (Debian's libpostscriptbarcode package)</li>
</ol>
<h4 id="displaying-the-list-of-supported-symbologies">Displaying the List of Supported Symbologies</h4>
<p>To make the presentation of the list of barcode formats manageable any such list of barcodes should be rendered in the same/similar way as the <a href="https://the-burtons.xyz/barcode-generator/">web-based generator</a>.</p>
<h4 id="refer-users-to-the-bwipp-documentation">Refer Users to the BWIPP Documentation</h4>
<p>Point your users at the online BWIPP symbologies and options references.</p>
<p>The reference is written these in a way that is intended to be fairly environment agnostic but if you have any ideas or want to improve them in some way then please contribute.</p>
<ul>
<li><a href="https://github.com/bwipp/postscriptbarcode/wiki/Symbologies-Reference" class="uri">https://github.com/bwipp/postscriptbarcode/wiki/Symbologies-Reference</a></li>
<li><a href="https://github.com/bwipp/postscriptbarcode/wiki/Options-Reference" class="uri">https://github.com/bwipp/postscriptbarcode/wiki/Options-Reference</a></li>
</ul>
<h4 id="safe-argument-passing">Safe Argument Passing</h4>
<p>Pass arguments to BWIPP in an injection-proof way that does not allow users to invoke arbitrary PostScript commands by means of un-escaped <code>)</code> or otherwise.</p>
<p>The best way is to &quot;hexify&quot; the data, options and encoder string data in your output, for example:</p>
<pre><code>0 0 moveto
&lt;3032333435363733&gt;                          &lt;-- Instead of (02345673)
&lt;696e636c75646574657874&gt;                    &lt;-- Instead of (includetext)
&lt;65616e38&gt; cvn                              &lt;-- Instead of /ean8
/uk.co.terryburton.bwipp findresource exec
</code></pre>
<p>Example Python:</p>
<div class="sourceCode" id="cb240"><pre class="sourceCode python"><code class="sourceCode python"><a class="sourceLine" id="cb240-1" title="1"><span class="im">import</span> binascii, textwrap</a>
<a class="sourceLine" id="cb240-2" title="2"><span class="kw">def</span> hexify(<span class="bu">input</span>):</a>
<a class="sourceLine" id="cb240-3" title="3">  <span class="cf">return</span> textwrap.TextWrapper(subsequent_indent<span class="op">=</span><span class="st">' '</span>, width<span class="op">=</span><span class="dv">72</span>). <span class="op">\</span></a>
<a class="sourceLine" id="cb240-4" title="4">    fill(<span class="st">'&lt;'</span> <span class="op">+</span> binascii.hexlify(string) <span class="op">+</span> <span class="st">'&gt;'</span>)</a></code></pre></div>
<p>Example Perl:</p>
<div class="sourceCode" id="cb241"><pre class="sourceCode perl"><code class="sourceCode perl"><a class="sourceLine" id="cb241-1" title="1"><span class="kw">sub </span><span class="fu">hexify</span> {</a>
<a class="sourceLine" id="cb241-2" title="2">  <span class="kw">return</span> <span class="kw">'</span><span class="st">&lt;</span><span class="kw">'</span>.(<span class="fu">join</span> <span class="kw">&quot;</span><span class="ch">\n</span><span class="st"> </span><span class="kw">&quot;</span>, <span class="fu">unpack</span> <span class="kw">'</span><span class="st">(A72)*</span><span class="kw">'</span>, <span class="fu">unpack</span> <span class="kw">'</span><span class="st">H*</span><span class="kw">'</span>, <span class="fu">shift</span>).<span class="kw">'</span><span class="st">&gt;</span><span class="kw">'</span>;</a>
<a class="sourceLine" id="cb241-3" title="3">}</a></code></pre></div>
<h1 id="acknowledgements">Acknowledgements</h1>
<p>Many thanks for the technical contributions from:</p>
<ul>
<li>Martin Bailey</li>
<li>Jean-François Barbeau</li>
<li>Eric Belshaw</li>
<li>Tim Brunson</li>
<li>Hann-Huei Chiou</li>
<li>John Desrosiers</li>
<li>Lars DIECKOW</li>
<li>Chapman Flack</li>
<li>Anders Hammarquist</li>
<li>Matthew Harmon</li>
<li>Adrian Head</li>
<li>Christian Hitz</li>
<li>Ray Johnson</li>
<li>Janos Juhasz</li>
<li>Reinhold Kainhofer</li>
<li>Gerd Knops</li>
<li>Michael Landers</li>
<li>Ross McFarland</li>
<li>Rudolf Meier</li>
<li>Greg Menke</li>
<li>Matthew Newton</li>
<li>Harald Oehlmann</li>
<li>John Reiser</li>
<li>Herbert Voss</li>
<li>Jörg Walter</li>
</ul>
<p>Apologies to anybody that has been forgotten. Send a pull request or contact the author if that is the case.</p>
<h1 id="cited-by">Cited-By</h1>
<p>The following is a list of known references to Barcode Writer in Pure PostScript project and its derivatives.</p>
<p>If you are aware of any noteworthy additions to this list then please send a patch.</p>
<h4 id="barcode-writer-in-pure-postscript-1">Barcode Writer in Pure PostScript</h4>
<p><a href="https://bwipp.terryburton.co.uk" class="uri">https://bwipp.terryburton.co.uk</a></p>
<p>Martínez, Juan J. (2004) &quot;A Barcode Generator in Pure PostScript,&quot; <a href="http://blackshell.usebox.net/archive/a-barcode-generator-in-pure-postscript.html" class="uri">http://blackshell.usebox.net/archive/a-barcode-generator-in-pure-postscript.html</a></p>
<p>Flack, Chapman. (2006) &quot;Direct Use of the PostScript Language,&quot; <a href="http://www.anastigmatix.net/postscript/direct.html" class="uri">http://www.anastigmatix.net/postscript/direct.html</a></p>
<p>Rocholl, Johann C. (2009) &quot;Robust 1D Barcode Recognition on Mobile Devices,&quot; <a href="https://ieeexplore.ieee.org/document/5597018/" class="uri">https://ieeexplore.ieee.org/document/5597018/</a></p>
<p>Scarso, Luigi. (2009) &quot;Una estensione di luatex: luatex lunatic,&quot; <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.188.5052&amp;rep=rep1&amp;type=pdf" class="uri">http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.188.5052&amp;rep=rep1&amp;type=pdf</a></p>
<p>Pluimers, Jeroen W. (2009) &quot;Generating EAN-13 barcode EPS files for your article numbers,&quot; <a href="http://wiert.me/2009/11/30/generating-ean-13-barcode-eps-files-for-your-article-numbers/" class="uri">http://wiert.me/2009/11/30/generating-ean-13-barcode-eps-files-for-your-article-numbers/</a></p>
<p>Russell, Robert. (2010) &quot;Barcodes in SAP with the Barcode Writer in Pure Postscript,&quot; <a href="https://blogs.sap.com/2010/10/25/barcodes-in-sap-with-the-barcode-writer-in-pure-postscript/" class="uri">https://blogs.sap.com/2010/10/25/barcodes-in-sap-with-the-barcode-writer-in-pure-postscript/</a></p>
<p>Seichter, Dominik. (2010) &quot;KBarcode4 Light Released,&quot; <a href="http://domseichter.blogspot.com/2010/08/kbarcode4-light-released.html" class="uri">http://domseichter.blogspot.com/2010/08/kbarcode4-light-released.html</a></p>
<p>Willis, Nathan. (2010) &quot;Barcode Writer in Pure PostScript,&quot; Worldlabel.com Incorporated. <a href="http://blog.worldlabel.com/2010/barcode-writer-in-pure-postscript.html" class="uri">http://blog.worldlabel.com/2010/barcode-writer-in-pure-postscript.html</a></p>
<p>Russell, Robert. (2010) &quot;How to Print(PDF) QR Codes in standard SAP,&quot; <a href="http://www.rjruss.info/2010/09/how-to-printpdf-qr-codes-in-standard.html" class="uri">http://www.rjruss.info/2010/09/how-to-printpdf-qr-codes-in-standard.html</a></p>
<p>Zhao, Y., Sun, W. (2010) &quot;Practice of Imposition and Illustrator Variable Data Plate Making with Barcode,&quot; Proceedings of 17th IAPRI World Conference on Packaging. ISBN 978-1-935068-36-5.</p>
<p>Russell, Robert. (2011) &quot;More Barcodes with Barcode Writer in Pure Postscript,&quot; <a href="https://blogs.sap.com/2011/01/31/more-barcodes-with-barcode-writer-in-pure-postscript/" class="uri">https://blogs.sap.com/2011/01/31/more-barcodes-with-barcode-writer-in-pure-postscript/</a></p>
<p>McNulty, John. (2011) &quot;The Secret Lives of Objects,&quot; Sonic Arts Research Centre. Queen’s University Belfast. <a href="http://www.robotmouth.com/papers_files/TSLOO.pdf" class="uri">http://www.robotmouth.com/papers_files/TSLOO.pdf</a></p>
<p>Russell, Robert. (2013) &quot;Add FREE barcodes to the SAP Latin2 HP printer Driver,&quot; <a href="http://www.rjruss.info/2013/02/add-free-barcodes-to-sap-latin2-hp.html" class="uri">http://www.rjruss.info/2013/02/add-free-barcodes-to-sap-latin2-hp.html</a></p>
<p>Ehlenbroker J., Lohweg V. (2014) &quot;microIDENT - A System for Simple Coding and Authentication of Documents,&quot; Optical Document Security - The Conference on Optical Security and Counterfeit Detection IV.</p>
<p>Russell, Robert. (2014) &quot;Example SAP Smartform with QRcodes using the Barcode Writer in Pure Postscript,&quot; <a href="http://www.rjruss.info/2014/09/example-sap-smartform-with-qrcodes.html" class="uri">http://www.rjruss.info/2014/09/example-sap-smartform-with-qrcodes.html</a></p>
<p>Scarso, Luigi. (2015) &quot;Two applications of SWIGLIB: GraphicsMagick and Ghostscript,&quot; The TUGboat Journal, Volume 36, Number 3. p. 237.</p>
<p>Ehlenbroker J., Lohweg V. (2016) &quot;System for simple coding, authentication and copy detection of printed documents,&quot; U.S. Patent Application 15/114,422, published December 2016.</p>
<p>Berisso, K. (2018) &quot;DotCode Damage Testing,&quot; Journal of Computer Sciences and Applications, Volume 6, Number 1. pp. 43-47. <a href="http://pubs.sciepub.com/jcsa/6/1/6" class="uri">http://pubs.sciepub.com/jcsa/6/1/6</a></p>
<p>West, M., Campbell C. (2018) &quot;barcOwned: Popping Shells with Your Cereal Box,&quot; DEF CON 26. <a href="https://www.youtube.com/watch?v=Wy79TLkqArg" class="uri">https://www.youtube.com/watch?v=Wy79TLkqArg</a></p>
<h4 id="pst-barcode">pst-barcode</h4>
<p><a href="http://www.ctan.org/tex-archive/graphics/pstricks/contrib/pst-barcode/" class="uri">http://www.ctan.org/tex-archive/graphics/pstricks/contrib/pst-barcode/</a></p>
<p>Goossens, M., Mittelbach F., Rahtz, S., Roegel, D. (2007) &quot;The LaTeX Graphics Companion,&quot; Addison Wesley. ISBN 978-0-321-50892-8.</p>
<p>Robbers, Yuri &amp; Skjold, Annemarie. (2007) &quot;Creating Book Covers using PSTricks,&quot; The PracTex Journal, Number 1.</p>
<p>Thompson, Paul A. (2008) &quot;Clinical trials management on the internet - II. Using LATEX, PostScript, and SAS to produce barcode label sheets,&quot; The PracTeX Journal, Number 3.</p>
<p>Voß, Herbert. (2010) &quot;The current state of the PSTricks project,&quot; The TUGboat Journal, Volume 31i, Number 1. p. 36.</p>
<p>Voß, Herbert. (2011) &quot;Ch 26: pst-barcode - Bar codes&quot; in &quot;PSTricks. Graphics and PostScript for TeX and LaTeX,&quot; Cambridge: UIT Cambridge. pp. 497-508.</p>
<p>Molnar, Peter. (2013) &quot;Processing class assignments on paper (Part I),&quot; Blog: I'd rather be programming... <a href="http://blog.petermolnar.us/2013/03/processing-class-assignments-on-paper.html" class="uri">http://blog.petermolnar.us/2013/03/processing-class-assignments-on-paper.html</a></p>
<p>Voß, Herbert. (2013) &quot;QR-Codes im Rand ausgeben [QR Codes in the Margin],&quot; Die TEXnische Komödie 4/2013. pp. 34–37. <a href="http://archiv.dante.de/DTK/PDF/komoedie_2013_4.pdf" class="uri">http://archiv.dante.de/DTK/PDF/komoedie_2013_4.pdf</a></p>
<p>Fischer, Ulrike. (2014) &quot;biblatex variations,&quot; The TUGboat Journal, Volume 35, Number 3. pp. 256-260.</p>
<p>de Assis Zampirolli, F., Batista, V.R., Quilici-Gonzalez, J.A. (2016) &quot;An automatic generator and corrector of multiple choice tests with random answer keys,&quot; Frontiers in Education Conference (FIE), 2016. IEEE. pp. 1-8.</p>
<p>Voß, Herbert. (2016) &quot;Ch 25: pst-barcode: Barcodes&quot; in &quot;PSTricks. Grafik mit PostScript für TeX und LaTeX,&quot; Lehmanns Media. pp. 535-548.</p>
<p>Tibi, Daniel. (2016) &quot;Easy Codes: Generating Barcodes and QR Codes With LaTeX.&quot; Ubuntu User, Issue 28 (Spring 2016). Linux New Media USA LLC. pp. 45-47.</p>
<p>Voß, Herbert. (2017) &quot;The current state of the PSTricks project,&quot; The TUGboat Journal, Volume 38, Number 3. p. 329.</p>
<h4 id="barcode-writer-in-pure-javascript">Barcode Writer in Pure JavaScript</h4>
<p><a href="https://github.com/metafloor/bwip-js" class="uri">https://github.com/metafloor/bwip-js</a></p>
<p>Russell, Robert. (2015) &quot;Barcodes in SAP with the Barcode Writer in Pure Postscript Updated and Also Available in JavaScript,&quot; <a href="https://blogs.sap.com/2015/02/01/barcodes-in-sap-with-the-barcode-writer-in-pure-postscript-updated-and-also-available-in-javascript/" class="uri">https://blogs.sap.com/2015/02/01/barcodes-in-sap-with-the-barcode-writer-in-pure-postscript-updated-and-also-available-in-javascript/</a></p>
<h4 id="scribus-barcode-generator-plugin">Scribus Barcode Generator Plugin</h4>
<p><a href="http://documentation.scribus.net/index.php/Barcode_Generator" class="uri">http://documentation.scribus.net/index.php/Barcode_Generator</a></p>
<p>&quot;Libre Graphics: Scribus. Open Source Desktop Publishing Turns Pro,&quot; Linux Format, Issue 80 (June 2006). Future Publishing. p. 54.</p>
<p>Byfield, Bruce. (2011) &quot;Four Hidden Tools in Scribus,&quot; Linux Journal, November 2011. Belltown Media Inc. <a href="http://www.linuxjournal.com/content/four-hidden-tools-scribus" class="uri">http://www.linuxjournal.com/content/four-hidden-tools-scribus</a></p>
<p>Willis, Nathan. (2013) &quot;Scribus 1.4.3 adds color models and more,&quot; LWN.net. Eklektix, Inc. <a href="https://lwn.net/Articles/563035/" class="uri">https://lwn.net/Articles/563035/</a></p>
<p>White, Robert. (2015) &quot;Beginning Scribus,&quot; Apress Media, LLC. pp 300-301. ISBN 978-1-4842-0722-2.</p>
<h4 id="kbarcode">KBarcode</h4>
<p><a href="http://www.kbarcode.net/" class="uri">http://www.kbarcode.net/</a></p>
<p>Willis, Nathan. (2010) &quot;Generating Barcodes with KBarcode,&quot; Worldlabel.com Incorporated. <a href="http://blog.worldlabel.com/2010/generating-barcodes-with-kbarcode.html" class="uri">http://blog.worldlabel.com/2010/generating-barcodes-with-kbarcode.html</a></p>
</body>
</html>