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">"Flavours" 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">"Flavours" 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>"Packaged" or "unpackaged": 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>"Separate files" or "monolithic": 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 "symbology"
/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/ "C:/create-barcode.ps"
</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 "runes", 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 "hidden data" in the padding codewords as used by some non-standard, "high-security" 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>[)>{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>[)>^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: [\)>^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 "%{postscriptname}\n" /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 "turn key" 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 % <-- 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 "stopped context" 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>{ % "try" BWIPP invocation
0 0 moveto (ABC) () /code39 /uk.co.terryburton.bwipp findresource exec
showpage
} stopped { % "catch" 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 "hexify" the data, options and encoder string data in your output, for example:</p>
<pre><code>0 0 moveto
<3032333435363733> <-- Instead of (02345673)
<696e636c75646574657874> <-- Instead of (includetext)
<65616e38> cvn <-- 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">'<'</span> <span class="op">+</span> binascii.hexlify(string) <span class="op">+</span> <span class="st">'>'</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"><</span><span class="kw">'</span>.(<span class="fu">join</span> <span class="kw">"</span><span class="ch">\n</span><span class="st"> </span><span class="kw">"</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">></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) "A Barcode Generator in Pure PostScript," <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) "Direct Use of the PostScript Language," <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) "Robust 1D Barcode Recognition on Mobile Devices," <a href="https://ieeexplore.ieee.org/document/5597018/" class="uri">https://ieeexplore.ieee.org/document/5597018/</a></p>
<p>Scarso, Luigi. (2009) "Una estensione di luatex: luatex lunatic," <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.188.5052&rep=rep1&type=pdf" class="uri">http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.188.5052&rep=rep1&type=pdf</a></p>
<p>Pluimers, Jeroen W. (2009) "Generating EAN-13 barcode EPS files for your article numbers," <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) "Barcodes in SAP with the Barcode Writer in Pure Postscript," <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) "KBarcode4 Light Released," <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) "Barcode Writer in Pure PostScript," 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) "How to Print(PDF) QR Codes in standard SAP," <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) "Practice of Imposition and Illustrator Variable Data Plate Making with Barcode," Proceedings of 17th IAPRI World Conference on Packaging. ISBN 978-1-935068-36-5.</p>
<p>Russell, Robert. (2011) "More Barcodes with Barcode Writer in Pure Postscript," <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) "The Secret Lives of Objects," 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) "Add FREE barcodes to the SAP Latin2 HP printer Driver," <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) "microIDENT - A System for Simple Coding and Authentication of Documents," Optical Document Security - The Conference on Optical Security and Counterfeit Detection IV.</p>
<p>Russell, Robert. (2014) "Example SAP Smartform with QRcodes using the Barcode Writer in Pure Postscript," <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) "Two applications of SWIGLIB: GraphicsMagick and Ghostscript," The TUGboat Journal, Volume 36, Number 3. p. 237.</p>
<p>Ehlenbroker J., Lohweg V. (2016) "System for simple coding, authentication and copy detection of printed documents," U.S. Patent Application 15/114,422, published December 2016.</p>
<p>Berisso, K. (2018) "DotCode Damage Testing," 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) "barcOwned: Popping Shells with Your Cereal Box," 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) "The LaTeX Graphics Companion," Addison Wesley. ISBN 978-0-321-50892-8.</p>
<p>Robbers, Yuri & Skjold, Annemarie. (2007) "Creating Book Covers using PSTricks," The PracTex Journal, Number 1.</p>
<p>Thompson, Paul A. (2008) "Clinical trials management on the internet - II. Using LATEX, PostScript, and SAS to produce barcode label sheets," The PracTeX Journal, Number 3.</p>
<p>Voß, Herbert. (2010) "The current state of the PSTricks project," The TUGboat Journal, Volume 31i, Number 1. p. 36.</p>
<p>Voß, Herbert. (2011) "Ch 26: pst-barcode - Bar codes" in "PSTricks. Graphics and PostScript for TeX and LaTeX," Cambridge: UIT Cambridge. pp. 497-508.</p>
<p>Molnar, Peter. (2013) "Processing class assignments on paper (Part I)," 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) "QR-Codes im Rand ausgeben [QR Codes in the Margin]," 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) "biblatex variations," The TUGboat Journal, Volume 35, Number 3. pp. 256-260.</p>
<p>de Assis Zampirolli, F., Batista, V.R., Quilici-Gonzalez, J.A. (2016) "An automatic generator and corrector of multiple choice tests with random answer keys," Frontiers in Education Conference (FIE), 2016. IEEE. pp. 1-8.</p>
<p>Voß, Herbert. (2016) "Ch 25: pst-barcode: Barcodes" in "PSTricks. Grafik mit PostScript für TeX und LaTeX," Lehmanns Media. pp. 535-548.</p>
<p>Tibi, Daniel. (2016) "Easy Codes: Generating Barcodes and QR Codes With LaTeX." Ubuntu User, Issue 28 (Spring 2016). Linux New Media USA LLC. pp. 45-47.</p>
<p>Voß, Herbert. (2017) "The current state of the PSTricks project," 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) "Barcodes in SAP with the Barcode Writer in Pure Postscript Updated and Also Available in JavaScript," <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>"Libre Graphics: Scribus. Open Source Desktop Publishing Turns Pro," Linux Format, Issue 80 (June 2006). Future Publishing. p. 54.</p>
<p>Byfield, Bruce. (2011) "Four Hidden Tools in Scribus," 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) "Scribus 1.4.3 adds color models and more," LWN.net. Eklektix, Inc. <a href="https://lwn.net/Articles/563035/" class="uri">https://lwn.net/Articles/563035/</a></p>
<p>White, Robert. (2015) "Beginning Scribus," 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) "Generating Barcodes with KBarcode," 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>
|