Kod 128 - Code 128
Kod 128 är en linjär streckkodssymbol med hög densitet definierad i ISO/IEC 15417: 2007. Den används för alfanumeriska eller numeriska streckkoder . Den kan koda alla 128 tecken i ASCII och, med hjälp av en förlängningssymbol (FNC4), Latin-1-tecknen definierade i ISO/IEC 8859-1 .. Det resulterar i allmänhet i mer kompakta streckkoder jämfört med andra metoder som kod 39 , särskilt när texterna innehåller mestadels siffror.
GS1-128 (tidigare känd som UCC/EAN-128) är en delmängd av kod 128 och används i stor utsträckning över hela världen inom frakt- och förpackningsindustrin som en produktidentifieringskod för container- och pallnivåerna i leveranskedjan.
Specifikation
En kod 128 streckkod har sju sektioner:
- Tyst zon
- Startsymbol
- Kodad data
- Kontrollsymbol (obligatorisk)
- Stoppsymbol
- Sista stapeln (anses ofta vara en del av stoppsymbolen)
- Tyst zon
Checksymbolen beräknas utifrån en vägd summa ( modulo 103) av alla symboler.
Undertyper
Kod 128 innehåller 108 symboler: 103 datasymboler, 3 startsymboler och 2 stoppsymboler. Varje symbol består av tre svarta staplar och tre vita mellanslag med olika bredd. Alla bredder är multiplar av en grundläggande "modul". Varje stapel och mellanrum är 1 till 4 moduler breda, och symbolerna är fasta bredd: summan av bredden på de tre svarta staplarna och tre vita staplarna är 11 moduler.
Stoppmönstret består av två överlappade symboler och har fyra staplar. Stoppmönstret tillåter dubbelriktad skanning. När stoppmönstret läses från vänster till höger (det vanliga fallet) känns stoppsymbolen (följt av en 2-modulars stapel) igen. När stoppmönstret läses från höger till vänster, känns symbolen för omvänd stopp (följt av en 2-modulig stapel). En skanner som ser symbolen för omvänd stopp vet då att den måste hoppa över stapeln med 2 moduler och läsa resten av streckkoden i omvänd ordning.
Trots sitt namn har kod 128 inte 128 distinkta symboler, så den kan inte representera 128 kodpunkter direkt. För att representera alla 128 ASCII -värden växlar den mellan tre koduppsättningar (A, B, C). Tillsammans täcker koduppsättningarna A och B alla 128 ASCII -tecken. Koduppsättning C används för att effektivt koda siffersträngar. Den första delmängden väljs med hjälp av lämplig startsymbol. Inom varje koduppsättning är några av de 103 datakodpunkterna reserverade för att flytta till en av de andra två koduppsättningarna. Skiftningarna görs med hjälp av kodpunkterna 98 och 99 i koduppsättningar A och B, 100 i koduppsättningar A och C och 101 i koduppsättningar B och C för att växla mellan dem):
- 128A (koduppsättning A) - ASCII -tecken 00 till 95 (0–9, A – Z och kontrollkoder), specialtecken och FNC 1–4
- 128B (koduppsättning B) - ASCII -tecken 32 till 127 (0–9, A – Z, a – z), specialtecken och FNC 1–4
- 128C (koduppsättning C) - 00–99 (kodar två siffror med en enda kodpunkt) och FNC1
Minsta bredd för den tysta zonen till vänster och höger om koden 128 är 10x, där x är den minsta bredden på en modul. Det är obligatoriskt på vänster och höger sida av streckkoden.
Start/stopp och kodad data
Varje symbol i streckkoden består av tre staplar och tre mellanslag. Varje stapel eller mellanslag är 1, 2, 3 eller 4 enheter bred, summan av staplarnas bredder måste vara jämn (4, 6 eller 8 enheter), summan av bredden på mellanslagen måste vara udda (3, 5 eller 7 enheter) och totalt 11 enheter per symbol. Till exempel kan kodning av ASCII -tecknet "0" ses som 10011101100, där en sekvens av 1: or är en stapel och en sekvens av 0: er är ett mellanslag. En enda 1 skulle vara den tunnaste raden i streckkoden. Tre 1: or i sekvens (111) indikerar en stapel tre gånger så tjock som en enda bar.
Det finns 108 möjliga 11-enhetiga breda symboler, och koden använder alla möjliga symboler. Två av symbolerna används för stopp (streckkodens slut), stopp och bakåtstopp. De två stoppsymbolerna är speciella eftersom de alltid följs av en stapel med 2 enheter och bildar ett 13-enhet långt stoppmönster. Att läsa stoppmönstret från vänster till höger är stoppsymbolen (följt av en stapel med 2 enheter) och att läsa stoppmönstret från höger till vänster är symbolen för omvänd stopp (följt av en stapel med 2 enheter).
Kontrollera siffror
Kontrollsiffran är en vägd modulo-103 kontrollsumma. Det beräknas genom att summera startkoden "värde" till produkterna av varje symbols "värde" multiplicerat med dess position i streckkodsträngen. Startsymbolen och den första kodade symbolen är i position 1. Summan av produkterna reduceras sedan modulo 103. Resten konverteras sedan tillbaka till en av de 103 icke-avgränsande symbolerna (enligt instruktionerna nedan ) och läggs till i streckkoden , omedelbart före stoppsymbolen.
Till exempel, i följande tabell, beräknas värdet för kod 128 variant A kontrollsumma för den alfanumeriska strängen PJJ123C:
| Koda | Värde | Placera | Värde × position |
|---|---|---|---|
| Startkod A | 103 | 1 | 103 |
| P | 48 | 1 | 48 |
| J | 42 | 2 | 84 |
| J | 42 | 3 | 126 |
| 1 | 17 | 4 | 68 |
| 2 | 18 | 5 | 90 |
| 3 | 19 | 6 | 114 |
| C | 35 | 7 | 245 |
| Belopp | 878 | ||
| Resten mod 103 | 54 | ||
För beräkning av kontrollsymbolen behandlas skift- och kodväxlingssymbolerna på samma sätt som alla andra symboler i streckkoden. Kontrollsumman beräknas över symbolvärdena, utan hänsyn till vilken koduppsättning som är aktiv vid den tiden. Till exempel anses koduppsättning C -värde "33" och koduppsättning B -värde "A" båda vara ett kod 128 -värde på 33, och kontrollsiffran beräknas baserat på värdet 33 gånger symbolens position inom streckkoden .
Använd FNC4 för att koda höga (128–255) tecken
Specialsymbolen FNC4 ("Funktion 4"), som endast finns i koduppsättningar A och B, kan användas för att koda alla Latin-1 ( ISO-8859-1 ) tecken i en kod 128 streckkod. Funktionen stöds inte i stor utsträckning och används inte i GS1-128. När en enda FNC4 finns i en sträng konverteras följande symbol till ASCII som vanligt och sedan läggs 128 till ASCII -värdet. (Om följande symbol är en skift, kommer en andra symbol att användas för att få tecknet.) Om två FNC4 används i följd kommer alla följande tecken att behandlas som sådana, upp till slutet av strängen eller ett annat par FNC4 . Mellan de dubbla FNC4 kommer en enda FNC4 att användas för att ange att följande tecken är standard ASCII .
Streckkodsbredder
Code128 anger en kombination av 6 alternerande staplar och mellanslag (3 av varje) för varje symbol. Således börjar varje symbol med en stapel och slutar med ett mellanslag. I streckkodsteckensnitt kombineras i regel den sista strecket med stoppsymbolen för att skapa ett bredare stoppmönster. Följande tabell beskriver bredderna som är kopplade till varje stapel och utrymmet för varje symbol. Bredden på varje stapel eller utrymme kan vara 1, 2, 3 eller 4 enheter (moduler). Med hjälp av exemplet ovan skulle ett 'A' avbildas med mönstret 10100011000 eller som bredder 111323 i tabellerna nedan.
Breddvärdet härleds genom att räkna längden på varje körning med 1: a och 0: or i mönstret, från vänster. Det kommer alltid att finnas 6 körningar och längden på dessa 6 körningar utgör breddvärdet. Till exempel, med hjälp av mönstret 10100011000, är körlängderna 1 (siffra 1), 1 (siffra 0), 1 (siffra 1), 3 (siffra 0), 2 (siffra 1), 3 (siffra 0). Att rapportera bara längderna för varje körning ger 1, 1, 1, 3, 2, 3, vilket ger ett breddvärde på 111323.
| Värde | Hexvärde | 128A | 128B | 128C | Teckensnittsposition (vanligt/ovanligt/streckkoder) |
Bar/mellanslag | ||
|---|---|---|---|---|---|---|---|---|
| Koda | Latin-1 | Mönster | Bredd | |||||
| 0 | 00 | Plats | Plats | 00 | 32 eller 194 eller 207 /212 /252 | ␣ eller  eller Ï / Ô / ü | 11011001100 | 212222 |
| 1 | 01 | ! | ! | 01 | 33 | ! | 11001101100 | 222122 |
| 2 | 02 | " | " | 02 | 34 | " | 11001100110 | 222221 |
| 3 | 03 | # | # | 03 | 35 | # | 10010011000 | 121223 |
| 4 | 04 | $ | $ | 04 | 36 | $ | 10010001100 | 121322 |
| 5 | 05 | % | % | 05 | 37 | % | 10001001100 | 131222 |
| 6 | 06 | & | & | 06 | 38 | & | 10011001000 | 122213 |
| 7 | 07 | ' | ' | 07 | 39 | ' | 10011000100 | 122312 |
| 8 | 08 | ( | ( | 08 | 40 | ( | 10001100100 | 132212 |
| 9 | 09 | ) | ) | 09 | 41 | ) | 11001001000 | 221213 |
| 10 | 0a | * | * | 10 | 42 | * | 11001000100 | 221312 |
| 11 | 0b | + | + | 11 | 43 | + | 11000100100 | 231212 |
| 12 | 0c | , | , | 12 | 44 | , | 10110011100 | 112232 |
| 13 | 0d | - | - | 13 | 45 | - | 10011011100 | 122132 |
| 14 | 0e | . | . | 14 | 46 | . | 10011001110 | 122231 |
| 15 | 0f | / | / | 15 | 47 | / | 10111001100 | 113222 |
| 16 | 10 | 0 | 0 | 16 | 48 | 0 | 10011101100 | 123122 |
| 17 | 11 | 1 | 1 | 17 | 49 | 1 | 10011100110 | 123221 |
| 18 | 12 | 2 | 2 | 18 | 50 | 2 | 11001110010 | 223211 |
| 19 | 13 | 3 | 3 | 19 | 51 | 3 | 11001011100 | 221132 |
| 20 | 14 | 4 | 4 | 20 | 52 | 4 | 11001001110 | 221231 |
| 21 | 15 | 5 | 5 | 21 | 53 | 5 | 11011100100 | 213212 |
| 22 | 16 | 6 | 6 | 22 | 54 | 6 | 11001110100 | 223112 |
| 23 | 17 | 7 | 7 | 23 | 55 | 7 | 11101101110 | 312131 |
| 24 | 18 | 8 | 8 | 24 | 56 | 8 | 11101001100 | 311222 |
| 25 | 19 | 9 | 9 | 25 | 57 | 9 | 11100101100 | 321122 |
| 26 | 1a | : | : | 26 | 58 | : | 11100100110 | 321221 |
| 27 | 1b | ; | ; | 27 | 59 | ; | 11101100100 | 312212 |
| 28 | 1c | < | < | 28 | 60 | < | 11100110100 | 322112 |
| 29 | 1d | = | = | 29 | 61 | = | 11100110010 | 322211 |
| 30 | 1e | > | > | 30 | 62 | > | 11011011000 | 212123 |
| 31 | 1f | ? | ? | 31 | 63 | ? | 11011000110 | 212321 |
| 32 | 20 | @ | @ | 32 | 64 | @ | 11000110110 | 232121 |
| 33 | 21 | A | A | 33 | 65 | A | 10100011000 | 111323 |
| 34 | 22 | B | B | 34 | 66 | B | 10001011000 | 131123 |
| 35 | 23 | C | C | 35 | 67 | C | 10001000110 | 131321 |
| 36 | 24 | D | D | 36 | 68 | D | 10110001000 | 112313 |
| 37 | 25 | E | E | 37 | 69 | E | 10001101000 | 132113 |
| 38 | 26 | F | F | 38 | 70 | F | 10001100010 | 132311 |
| 39 | 27 | G | G | 39 | 71 | G | 11010001000 | 211313 |
| 40 | 28 | H | H | 40 | 72 | H | 11000101000 | 231113 |
| 41 | 29 | I | I | 41 | 73 | I | 11000100010 | 231311 |
| 42 | 2a | J | J | 42 | 74 | J | 10110111000 | 112133 |
| 43 | 2b | K | K | 43 | 75 | K | 10110001110 | 112331 |
| 44 | 2c | L | L | 44 | 76 | L | 10001101110 | 132131 |
| 45 | 2d | M | M | 45 | 77 | M | 10111011000 | 113123 |
| 46 | 2e | N | N | 46 | 78 | N | 10111000110 | 113321 |
| 47 | 2f | O | O | 47 | 79 | O | 10001110110 | 133121 |
| 48 | 30 | P | P | 48 | 80 | P | 11101110110 | 313121 |
| 49 | 31 | F | F | 49 | 81 | F | 11010001110 | 211331 |
| 50 | 32 | R | R | 50 | 82 | R | 11000101110 | 231131 |
| 51 | 33 | S | S | 51 | 83 | S | 11011101000 | 213113 |
| 52 | 34 | T | T | 52 | 84 | T | 11011100010 | 213311 |
| 53 | 35 | U | U | 53 | 85 | U | 11011101110 | 213131 |
| 54 | 36 | V | V | 54 | 86 | V | 11101011000 | 311123 |
| 55 | 37 | W | W | 55 | 87 | W | 11101000110 | 311321 |
| 56 | 38 | X | X | 56 | 88 | X | 11100010110 | 331121 |
| 57 | 39 | Y | Y | 57 | 89 | Y | 11101101000 | 312113 |
| 58 | 3a | Z | Z | 58 | 90 | Z | 11101100010 | 312311 |
| 59 | 3b | [ | [ | 59 | 91 | [ | 11100011010 | 332111 |
| 60 | 3c | \ | \ | 60 | 92 | \ | 11101111010 | 314111 |
| 61 | 3d | ] | ] | 61 | 93 | ] | 11001000010 | 221411 |
| 62 | 3e | ^ | ^ | 62 | 94 | ^ | 11110001010 | 431111 |
| 63 | 3f | _ | _ | 63 | 95 | _ | 10100110000 | 111224 |
| 64 | 40 | NUL | ` | 64 | 96 | ` | 10100001100 | 111422 |
| 65 | 41 | SOH | a | 65 | 97 | a | 10010110000 | 121124 |
| 66 | 42 | STX | b | 66 | 98 | b | 10010000110 | 121421 |
| 67 | 43 | ETX | c | 67 | 99 | c | 10000101100 | 141122 |
| 68 | 44 | EOT | d | 68 | 100 | d | 10000100110 | 141221 |
| 69 | 45 | ENQ | e | 69 | 101 | e | 10110010000 | 112214 |
| 70 | 46 | ACK | f | 70 | 102 | f | 10110000100 | 112412 |
| 71 | 47 | BEL | g | 71 | 103 | g | 10011010000 | 122114 |
| 72 | 48 | BS | h | 72 | 104 | h | 10011000010 | 122411 |
| 73 | 49 | HT | i | 73 | 105 | i | 10000110100 | 142112 |
| 74 | 4a | LF | j | 74 | 106 | j | 10000110010 | 142211 |
| 75 | 4b | VT | k | 75 | 107 | k | 11000010010 | 241211 |
| 76 | 4c | FF | l | 76 | 108 | l | 11001010000 | 221114 |
| 77 | 4d | CR | m | 77 | 109 | m | 11110111010 | 413111 |
| 78 | 4e | SÅ | n | 78 | 110 | n | 11000010100 | 241112 |
| 79 | 4f | SI | o | 79 | 111 | o | 10001111010 | 134111 |
| 80 | 50 | DLE | sid | 80 | 112 | sid | 10100111100 | 111242 |
| 81 | 51 | DC1 | q | 81 | 113 | q | 10010111100 | 121142 |
| 82 | 52 | DC2 | r | 82 | 114 | r | 10010011110 | 121241 |
| 83 | 53 | DC3 | s | 83 | 115 | s | 10111100100 | 114212 |
| 84 | 54 | DC4 | t | 84 | 116 | t | 10011110100 | 124112 |
| 85 | 55 | NAK | u | 85 | 117 | u | 10011110010 | 124211 |
| 86 | 56 | SYN | v | 86 | 118 | v | 11110100100 | 411212 |
| 87 | 57 | ETB | w | 87 | 119 | w | 11110010100 | 421112 |
| 88 | 58 | BURK | x | 88 | 120 | x | 11110010010 | 421211 |
| 89 | 59 | EM | y | 89 | 121 | y | 11011011110 | 212141 |
| 90 | 5a | SUB | z | 90 | 122 | z | 11011110110 | 214121 |
| 91 | 5b | ESC | { | 91 | 123 | { | 11110110110 | 412121 |
| 92 | 5c | FS | | | 92 | 124 | | | 10101111000 | 111143 |
| 93 | 5d | GS | } | 93 | 125 | } | 10100011110 | 111341 |
| 94 | 5e | RS | ~ | 94 | 126 | ~ | 10001011110 | 131141 |
| 95 | 5f | USA | DEL | 95 | 195/200 / 240 | Ã / È / ð | 10111101000 | 114113 |
| 96 | 60 | FNC 3 | FNC 3 | 96 | 196 /201 /241 | Ä / É / ñ | 10111100010 | 114311 |
| 97 | 61 | FNC 2 | FNC 2 | 97 | 197 /202 /242 | Å / Ê / ò | 11110101000 | 411113 |
| 98 | 62 | Skift B | Skift A | 98 | 198 /203 /243 | Æ / Ë / ó | 11110100010 | 411311 |
| 99 | 63 | Kod C | Kod C | 99 | 199 /204 /244 | Ç / Ì / ô | 10111011110 | 113141 |
| 100 | 64 | Kod B | FNC 4 | Kod B | 200 /205 /245 | È / Í / õ | 10111101110 | 114131 |
| 101 | 65 | FNC 4 | Kod A | Kod A | 201 /206 /246 | É / Î / ö | 11101011110 | 311141 |
| 102 | 66 | FNC 1 | FNC 1 | FNC 1 | 202 /207 /247 | Ê / Ï / ÷ | 11110101110 | 411131 |
| 103 | 67 | Startkod A | 203 /208 /248 | Ë / Ð / ø | 11010000100 | 211412 | ||
| 104 | 68 | Startkod B | 204 /209 /249 | Ì / Ñ / ù | 11010010000 | 211214 | ||
| 105 | 69 | Startkod C | 205 /210 /250 | Í / Ò / ú | 11010011100 | 211232 | ||
| 106 | 6a | Sluta | - | - | 11000111010 | 233111 | ||
| - | - | Omvänd stopp | - | - | 11010111000 | 211133 | ||
| - | - | Stoppmönster (7 staplar/mellanslag) | 206 /211 /251 | Î / Ó / û | 1100011101011 | 2331112 | ||
Symbolerna "Kod A", "Kod B" och "Kod C" gör att alla följande symboler tolkas enligt motsvarande underkod (dvs 128A, 128B eller 128C). "Shift" -symbolen växlar en enda följande symbols tolkning mellan underkoder A och B.
Den kodade ASCII-karaktären beror på den faktiska streckkodstypen som används. Speciellt ASCII -karaktären av värde 0 och av värde 95 och högre kan definieras annorlunda i det teckensnitt som installeras.
FNC x -koder används för speciella ändamål. FNC1 i början av en streckkod indikerar en GS1-128- streckkod som börjar med en 2- 3- eller 4-siffrig applikationsidentifierare som tilldelats av Uniform Code Council , vilket förklarar följande siffror. Till exempel anger applikationsidentifieraren 421 att en ISO 3166-1 numerisk landskod och leverans till postnummer följer. Således skulle det amerikanska postnumret för Vita huset i allmänhet skrivas ut som "(421) 840 20500", men skulle faktiskt vara kodat som " [Start C] [FNC1] 42 18 40 20 50 [Code A] 16 [Check symbol 92] [Stop]"
Kontrollera siffror för ovanstående postnummer exempel:
| Värde | Vikt | Vikt × värde | |
|---|---|---|---|
| Starta C | 105 | 1 | 105 |
| FNC1 | 102 | 1 | 102 |
| 42 | 42 | 2 | 84 |
| 18 | 18 | 3 | 54 |
| 40 | 40 | 4 | 160 |
| 20 | 20 | 5 | 100 |
| 50 | 50 | 6 | 300 |
| Kod A | 101 | 7 | 707 |
| 0 | 16 | 8 | 128 |
| Summa = | 1740 | ||
| 1740 | Mod 103 = | 92 |
Tillgänglighet
För slutanvändaren kan kod 128 streckkoder genereras av antingen en extern applikation för att skapa en bild av streckkoden eller av en teckensnittsbaserad streckkodslösning. Endera lösningen kräver användning av ett program eller ett tilläggsprogram för att beräkna kontrollsiffran och skapa streckkoden.
Optimering av streckkodslängd
Koduppsättning C använder en kodsymbol för att representera två siffror, så när texten innehåller bara siffror kommer det i allmänhet att resultera i kortare streckkoder. Men när strängen bara innehåller några siffror eller den är blandad med icke-siffrigt tecken ger den inte alltid en mer kompakt kod än koduppsättningar A eller B. Genom att använda koduppsättning C sparas en symbol per två siffror, men kostar ett läge -skift symbol för att komma in och ut ur uppsättningen. Således är det bara värt att använda om det finns tillräckligt många på varandra följande siffror. Till exempel kräver kodning av strängen "X00Y" med koduppsättning A eller B 7 kodsymboler ( [Start B] 56 16 16 57 [checksum] [Stop]), medan koduppsättning C för "00" skulle resultera i en kod med 8 symboler lång ( [Start B] 56 [Code C] 00 [Code B] 57 [checksum] [Stop]).
Att använda koduppsättning C är endast fördelaktigt under följande förhållanden:
| Placering av siffror | Antal på varandra följande siffror |
|---|---|
| början på data | 4+ |
| slutet av data | 4+ |
| mitten av data (omgiven av symboler från koduppsättning A eller B) | 6+ |
| hela data | antingen 2 eller 4+ (men inte 3) |
I slutet av en sträng undviks en extra symbol genom att fördröja övergången till koduppsättning C tills det finns ett jämnt antal siffror kvar. Tänk på strängen "... 01234": en försenad switch producerar ... 0 [Code C] 12 34 [checksum] [Stop]men en tidig switch producerar ... [Code C] 01 23 [Code A] 4 [checksum] [Stop].
Med exempelvis strängen "098x1234567y23" uppnås besparingar på streckkodslängd med koduppsättning C endast om den appliceras på mitten av strängen. För början och slutdelen av strängen är det inte effektivt att byta till koduppsättning C. Eftersom det finns ett udda antal siffror i mitten av strängen måste den udda använda en annan kod, men det spelar ingen roll om detta är den första eller sista; 16 symboler krävs i båda fallen:, [Start B] 0 9 8 x 1 [Code C] 23 45 67 [Code B] y 2 3 [checksum] [Stop]eller [Start B] 0 9 8 x [Code C] 12 34 56 [Code B] 7 y 2 3 [checksum] [Stop].
Det är viktigt att optimera längden på den resulterande streckkoden när streckkodsläsare används som måste upptäcka hela streckkodsbilden på en gång för att kunna läsa den, till exempel vanliga laserskannrar . Ju längre streckkoden är, desto större avstånd krävs för laserstreckkodsläsaren från streckkodbilden, vilket gör läsningen svår eller omöjlig över vissa tröskel längder/avstånd.
Den optimala kodningen kan hittas med hjälp av en dynamisk programmeringsalgoritm .
Referenser
externa länkar
- GS1-128 Specification- En detaljerad lista över applikationsidentifierare.
- Barcodesoft- Font mapping of Barcodesoft, som skiljer sig från den vanliga ascii-mappningen (se http://ascii-code.com/ ).
- 128-koden- Lär dig kod 128-algoritmen med en teckensnittsbaserad streckkodslösning.
- Online streckkod generator - Gratis online streckkod generator för de olika streckkodstyperna.
Exempelkod
- ZXing - Streckkodsläsare / generator med flera plattformar med öppen källkod med versioner tillgängliga i Java (kärnprojekt) och portar till ActionScript, C ++, C#, ObjectiveC och Ruby.
- Python Streckkod 128 - Den här koden verkar rita rutor en pixel bred. Det verkar som att det har ändrats från en kort rad lång streckkod som skulle ha dragit linjer. "Svarta lådor" ska ha samma storlek som "vita lådor".
- GenCode128 - Gratis C# källkod implementering av Code128. Nästan alla funktioner är implementerade, men är inte 100% fullständiga.
- Streckkod1DTools Rubinpärla - Rubinkällkod för många 1D -streckkodssymboler inklusive kod 128.
- Perl -streckkodgenereringskod - Perl -källkod för många 1D -streckkodssymboler inklusive kod 128.
- Streckkod :: Code128 - Gratis Perl -streckkodsmodul.
- GOCR - Gratis OCR med kod 128 igenkänning.
- Streckkod 128 - Gratis JavaScript källkod implementering av Code128.
- Streckkod4J - Gratis Java API med implementering av Code128 och andra vanliga streckkoder.
- JavaScript Code 128- Open-source JavaScript-implementering av Code128 och andra linjära streckkoder.
- Vi presenterar skapandet av kod 128 streckkoder Guide för att konvertera text till kod 128 streckkoder. Skrivet för Lazarus (öppen källkod, multi-platform GUI Pascal) men av allmän användning.