Code 128 - Code 128
Code 128 is een lineaire barcodesymboliek met hoge dichtheid, gedefinieerd in ISO/IEC 15417:2007. Het wordt gebruikt voor alfanumerieke of alleen numerieke streepjescodes . Het kan alle 128 tekens van ASCII coderen en, door gebruik te maken van een extensiesymbool (FNC4), de Latin-1-tekens gedefinieerd in ISO/IEC 8859-1 .. Het resulteert over het algemeen in compactere streepjescodes in vergelijking met andere methoden zoals Code 39 , vooral als de teksten voornamelijk cijfers bevatten.
GS1-128 (voorheen bekend als UCC/EAN-128) is een subset van Code 128 en wordt wereldwijd op grote schaal gebruikt in de verzend- en verpakkingsindustrie als productidentificatiecode voor de container- en palletniveaus in de toeleveringsketen.
Specificatie
Een Code 128-barcode heeft zeven secties:
- Stiltezone
- Start symbool
- Gecodeerde gegevens
- Vinkje (verplicht)
- Stop symbool
- Laatste balk (vaak beschouwd als onderdeel van het stopsymbool)
- Stiltezone
Het controlesymbool wordt berekend uit een gewogen som ( modulo 103) van alle symbolen.
Subtypen
Code 128 bevat 108 symbolen: 103 datasymbolen, 3 startsymbolen en 2 stopsymbolen. Elk symbool bestaat uit drie zwarte balken en drie witte ruimtes van verschillende breedtes. Alle breedtes zijn veelvouden van een basis "module". Elke balk en ruimte is 1 tot 4 modules breed en de symbolen hebben een vaste breedte: de som van de breedtes van de drie zwarte balken en drie witte balken is 11 modules.
Het stoppatroon bestaat uit twee overlappende symbolen en heeft vier streepjes. Het stoppatroon maakt bidirectioneel scannen mogelijk. Wanneer het stoppatroon van links naar rechts wordt gelezen (het gebruikelijke geval), wordt het stopsymbool (gevolgd door een balk met 2 modules) herkend. Wanneer het stoppatroon van rechts naar links wordt gelezen, wordt het omgekeerde stopsymbool (gevolgd door een balk met 2 modules) herkend. Een scanner die het omgekeerde stopsymbool ziet, weet dan dat hij de balk met 2 modules moet overslaan en de rest van de streepjescode omgekeerd moet lezen.
Ondanks zijn naam heeft Code 128 geen 128 verschillende symbolen, dus het kan 128 codepunten niet rechtstreeks vertegenwoordigen. Om alle 128 ASCII-waarden weer te geven, verschuift het tussen drie codesets (A, B, C). Samen dekken de codesets A en B alle 128 ASCII-tekens. Codeset C wordt gebruikt om cijferreeksen efficiënt te coderen. De initiële subset wordt geselecteerd door het juiste startsymbool te gebruiken. Binnen elke codeset zijn enkele van de 103 datacodepunten gereserveerd voor het verschuiven naar een van de andere twee codesets. De verschuivingen worden gedaan met behulp van codepunten 98 en 99 in codesets A en B, 100 in codesets A en C en 101 in codesets B en C om ertussen te schakelen):
- 128A (codeset A) – ASCII-tekens 00 tot 95 (0–9, A–Z en besturingscodes), speciale tekens en FNC 1-4
- 128B (codeset B) – ASCII-tekens 32 tot 127 (0–9, A–Z, a–z), speciale tekens en FNC 1-4
- 128C (codeset C) – 00-99 (codeert twee cijfers met een enkel codepunt) en FNC1
De minimale breedte van de stille zone links en rechts van de Code 128 is 10x, waarbij x de minimale breedte van een module is. Het is verplicht aan de linker- en rechterkant van de barcode.
Start/stop en gecodeerde gegevens
Elk symbool in de streepjescode bestaat uit drie streepjes en drie spaties. Elke balk of spatie is 1, 2, 3 of 4 eenheden breed, de som van de breedtes van de staven moet even zijn (4, 6 of 8 eenheden), de som van de breedtes van de spaties moet oneven zijn (3, 5 of 7 eenheden), en in totaal 11 eenheden per symbool. Het coderen van het ASCII-teken "0" kan bijvoorbeeld worden gezien als 10011101100, waarbij een reeks enen een balk is en een reeks nullen een spatie. Een enkele 1 zou de dunste lijn in de streepjescode zijn. Drie enen achter elkaar (111) geven een staaf aan die drie keer zo dik is als een enkele staaf van 1.
Er zijn 108 mogelijke symbolen van 11 eenheden breed en de code gebruikt alle mogelijke symbolen. Twee van de symbolen worden gebruikt voor stopaanduiding (einde streepjescode), stop en omgekeerde stop. De twee stopsymbolen zijn speciaal omdat ze altijd worden gevolgd door een balk van 2 eenheden, die een 13-eenheid lang stoppatroon vormen. Het van links naar rechts lezen van het stoppatroon is het stopsymbool (gevolgd door een balk van 2 eenheden) en het van rechts naar links lezen van het stoppatroon is het omgekeerde stopsymbool (gevolgd door een balk van 2 eenheden).
Controleer cijferberekening
Het controlecijfer is een gewogen modulo-103 controlesom. Het wordt berekend door de startcode 'waarde' op te tellen bij de producten van de 'waarde' van elk symbool, vermenigvuldigd met de positie in de streepjescodereeks. Het startsymbool en het eerste gecodeerde symbool staan op positie 1. De som van de producten wordt dan gereduceerd modulo 103. De rest wordt dan terug omgezet naar een van de 103 niet-scheidingstekens (volgens de onderstaande instructies ) en toegevoegd aan de streepjescode , direct voor het stopsymbool.
In de volgende tabel wordt bijvoorbeeld de code 128 variant A checksum-waarde berekend voor de alfanumerieke tekenreeks PJJ123C:
| Code | Waarde | Positie | Waarde × positie |
|---|---|---|---|
| Startcode 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 |
| Som | 878 | ||
| Resterende mod 103 | 54 | ||
Voor het berekenen van het controlesymbool worden de shift- en codeswitch-symbolen op dezelfde manier behandeld als elk ander symbool in de streepjescode. De controlesom wordt berekend over de symboolwaarden, ongeacht welke codeset op dat moment actief is. De codeset C-waarde "33" en de codeset B-waarde "A" worden bijvoorbeeld beide beschouwd als een code 128-waarde van 33, en het controlecijfer wordt berekend op basis van de waarde van 33 keer de positie van het symbool binnen de streepjescode .
FNC4 gebruiken om hoge (128–255) tekens te coderen
Het speciale symbool FNC4 ("Functie 4"), alleen aanwezig in codesets A en B, kan worden gebruikt om alle Latin-1 ( ISO-8859-1 ) tekens in een Code 128-barcode te coderen . De functie wordt niet breed ondersteund en wordt niet gebruikt in GS1-128. Wanneer een enkele FNC4 aanwezig is in een string, wordt het volgende symbool zoals gewoonlijk geconverteerd naar ASCII en vervolgens wordt 128 toegevoegd aan de ASCII-waarde. (Als het volgende symbool een verschuiving is, wordt een tweede symbool gebruikt om het teken te verkrijgen.) Als twee FNC4's achter elkaar worden gebruikt, worden alle volgende tekens als zodanig behandeld, tot aan het einde van de tekenreeks of een ander paar FNC4's . Tussen de dubbele FNC4's wordt een enkele FNC4 gebruikt om aan te geven dat het volgende teken standaard ASCII is .
Breedte streepjescode
Code128 specificeert een combinatie van 6 afwisselende balken en spaties (3 van elk) voor elk symbool. Elk symbool begint dus met een balk en eindigt met een spatie. In barcodelettertypen wordt de laatste balk over het algemeen gecombineerd met het stopsymbool om een breder stoppatroon te maken. In de volgende tabel worden de breedtes beschreven die bij elke balk horen en de spatie voor elk symbool. De breedte van elke balk of ruimte kan 1, 2, 3 of 4 eenheden (modules) zijn. Met behulp van het bovenstaande voorbeeld zou een 'A' worden afgebeeld met het patroon 10100011000, of als breedte 111323 in de onderstaande tabellen.
De waarde voor de breedte wordt afgeleid door de lengte van elke reeks van enen en dan nullen in het patroon te tellen, beginnend vanaf links. Er zullen altijd 6 runs zijn en de lengtes van deze 6 runs vormen de breedtes-waarde. Als u bijvoorbeeld het patroon 10100011000 gebruikt, zijn de runlengtes 1 (cijfer 1), 1 (cijfer 0), 1 (cijfer 1), 3 (cijfer 0), 2 (cijfer 1), 3 (cijfer 0). Het rapporteren van alleen de lengtes van elke run geeft 1, 1, 1, 3, 2, 3, waardoor een breedtewaarde van 111323 wordt geproduceerd.
| Waarde | Hex waarde | 128A | 128B | 128C | Lettertypepositie (algemeen/soms/barcodesoft) |
Bar/ruimte | ||
|---|---|---|---|---|---|---|---|---|
| Code | Latijn-1 | Patroon | Breedtes | |||||
| 0 | 00 | ruimte | ruimte | 00 | 32 of 194 of 207 / 212 / 252 | ␣ of  of Ï / Ô / ü | 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 | 1100001110 | 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 | 1110101100 | 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 | EEN | EEN | 33 | 65 | EEN | 10100011000 | 111323 |
| 34 | 22 | B | B | 34 | 66 | B | 10001011000 | 131123 |
| 35 | 23 | C | C | 35 | 67 | C | 10001000110 | 131321 |
| 36 | 24 | NS | NS | 36 | 68 | NS | 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 | l | l | 41 | 73 | l | 1100100010 | 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 | Q | Q | 49 | 81 | Q | 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 | 110111010 | 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 | ^ | 1111000010 | 431111 |
| 63 | 3f | _ | _ | 63 | 95 | _ | 10100110000 | 111224 |
| 64 | 40 | NUL | ` | 64 | 96 | ` | 10100001100 | 111422 |
| 65 | 41 | SOH | een | 65 | 97 | een | 10010110000 | 121124 |
| 66 | 42 | STX | B | 66 | 98 | B | 10010000110 | 121421 |
| 67 | 43 | ETX | C | 67 | 99 | C | 10000101100 | 141122 |
| 68 | 44 | EOT | NS | 68 | 100 | NS | 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 | 1001100010 | 122411 |
| 73 | 49 | HT | l | 73 | 105 | l | 10000110100 | 142112 |
| 74 | 4a | LF | J | 74 | 106 | J | 10000110010 | 142211 |
| 75 | 4b | VT | k | 75 | 107 | k | 110000010010 | 241211 |
| 76 | 4c | FF | ik | 76 | 108 | ik | 11001010000 | 221114 |
| 77 | 4d | CR | m | 77 | 109 | m | 11110111010 | 413111 |
| 78 | 4e | DUS | N | 78 | 110 | N | 1100010100 | 241112 |
| 79 | 4f | SI | O | 79 | 111 | O | 10001111010 | 134111 |
| 80 | 50 | DLE | P | 80 | 112 | P | 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 | jij | 85 | 117 | jij | 10011110010 | 124211 |
| 86 | 56 | SYN | v | 86 | 118 | v | 11110100100 | 411212 |
| 87 | 57 | ETB | met wie | 87 | 119 | met wie | 11110010100 | 421112 |
| 88 | 58 | KAN | x | 88 | 120 | x | 11110010010 | 421211 |
| 89 | 59 | EM | ja | 89 | 121 | ja | 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 | ~ | 100010111110 | 131141 |
| 95 | 5f | ons | 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 | / Ê / | 1110101000 | 41113 |
| 98 | 62 | Shift B | Shift A | 98 | 198 / 203 / 243 | Æ / Ë / ó | 11110100010 | 411311 |
| 99 | 63 | Code C | Code C | 99 | 199 / 204 / 244 | Ç / Ì / ô | 10111011110 | 113141 |
| 100 | 64 | Code B | FNC 4 | Code B | 200 / 205 / 245 | / Í / | 10111101110 | 114131 |
| 101 | 65 | FNC 4 | Code A | Code A | 201 / 206 / 246 | É / Î / ö | 11101011110 | 311141 |
| 102 | 66 | FNC 1 | FNC 1 | FNC 1 | 202 / 207 / 247 | Ê / Ï / ÷ | 11110101110 | 411131 |
| 103 | 67 | Startcode A | 203 / 208 / 248 | Ë / Ð / ø | 11010000100 | 211412 | ||
| 104 | 68 | Startcode B | 204 / 209 / 249 | / Ñ / | 11010010000 | 211214 | ||
| 105 | 69 | Startcode C | 205 / 210 / 250 | Í / Ò / ú | 11010011100 | 211232 | ||
| 106 | 6a | Stop | — | — | 1100111010 | 233111 | ||
| — | — | Achteruit stoppen | — | — | 11010111000 | 211133 | ||
| — | — | Stoppatroon (7 streepjes/spaties) | 206 / 211 / 251 | / Ó / | 110011101011 | 2331112 | ||
De symbolen "Code A", "Code B" en "Code C" zorgen ervoor dat alle volgende symbolen worden geïnterpreteerd volgens de overeenkomstige subcode (dwz 128A, 128B of 128C). Het "Shift"-symbool schakelt de interpretatie van een enkel volgend symbool tussen subcodes A en B.
Het gecodeerde ASCII-teken is afhankelijk van het daadwerkelijk gebruikte barcode-lettertype. Vooral het ASCII-teken van waarde 0 en van waarde 95 en hoger kan anders worden gedefinieerd in het geïnstalleerde lettertype.
De FNC x- codes worden voor speciale doeleinden gebruikt. FNC1 aan het begin van een streepjescode geeft een GS1-128- streepjescode aan die begint met een 2- 3- of 4-cijferige applicatie-identificatie die is toegewezen door de Uniform Code Council , wat de volgende cijfers verklaart. Toepassings-ID 421 geeft bijvoorbeeld aan dat er een ISO 3166-1 numerieke landcode en verzend-aan postcode volgt. Zo zou de Amerikaanse postcode voor het Witte Huis over het algemeen worden afgedrukt als "(421) 840 20500", maar in werkelijkheid worden gecodeerd als " [Start C] [FNC1] 42 18 40 20 50 [Code A] 16 [Check symbol 92] [Stop]"
Controleer cijferberekening voor het bovenstaande voorbeeld van een postcode:
| Waarde | Gewicht | Gewicht × waarde | |
|---|---|---|---|
| Begin 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 |
| Code A | 101 | 7 | 707 |
| 0 | 16 | 8 | 128 |
| Som = | 1740 | ||
| 1740 | Mod 103 = | 92 |
Beschikbaarheid
Voor de eindgebruiker kunnen Code 128-barcodes worden gegenereerd door een externe toepassing om een afbeelding van de streepjescode te maken, of door een op lettertypen gebaseerde barcode-oplossing. Voor beide oplossingen is het gebruik van een applicatie of een applicatie-invoegtoepassing vereist om het controlecijfer te berekenen en de streepjescode te maken.
Optimalisatie van streepjescodelengte
Codeset C gebruikt één codesymbool om twee cijfers weer te geven, dus als de tekst slechts cijfers bevat, resulteert dit over het algemeen in kortere streepjescodes. Wanneer de tekenreeks echter maar een paar cijfers bevat of wordt gemengd met niet-cijferige tekens, produceert deze niet altijd een compactere code dan codesets A of B. Het gebruik van codeset C bespaart één symbool per twee cijfers, maar kost een modus -shift-symbool om de set in en uit te gaan. Het is dus alleen de moeite waard om te gebruiken als er voldoende opeenvolgende cijfers zijn. Bijvoorbeeld, het coderen van de string "X00Y" met codeset A of B vereist 7 codesymbolen ( [Start B] 56 16 16 57 [checksum] [Stop]), terwijl het gebruik van codeset C voor de "00" zou resulteren in een code van 8 symbolen lang ( [Start B] 56 [Code C] 00 [Code B] 57 [checksum] [Stop]).
Het gebruik van codeset C is alleen voordelig onder de volgende voorwaarden:
| Locatie van cijfers | Aantal opeenvolgende cijfers |
|---|---|
| begin van gegevens | 4+ |
| einde van gegevens | 4+ |
| midden van data (omgeven door symbolen uit codeset A of B) | 6+ |
| volledige gegevens | ofwel 2 of 4+ (maar niet 3) |
Als u aan het einde van een string de overgang naar codeset C uitstelt totdat er een even aantal cijfers over is, wordt een extra symbool vermeden. Beschouw de string "...01234": een vertraagde switch produceert ... 0 [Code C] 12 34 [checksum] [Stop]maar een vroege switch produceert ... [Code C] 01 23 [Code A] 4 [checksum] [Stop].
Bijvoorbeeld, gegeven de string "098x1234567y23", worden besparingen op streepjescodelengte met behulp van codeset C alleen bereikt als deze wordt toegepast op het middelste deel van de string. Voor het begin- en eindgedeelte van de string is overschakelen naar codeset C niet effectief. Omdat er een oneven aantal cijfers in het midden van de string staat, moet de oneven code een andere code gebruiken, ingesteld, maar het maakt niet uit of dit de eerste of de laatste is; In beide gevallen zijn 16 symbolen vereist: [Start B] 0 9 8 x 1 [Code C] 23 45 67 [Code B] y 2 3 [checksum] [Stop], of [Start B] 0 9 8 x [Code C] 12 34 56 [Code B] 7 y 2 3 [checksum] [Stop].
Het optimaliseren van de lengte van de resulterende streepjescode is belangrijk wanneer streepjescodelezers worden gebruikt die het volledige streepjescodebeeld in één keer moeten detecteren om het te kunnen lezen, zoals gewone laserscanners . Hoe langer de streepjescode, hoe groter de afstand van de laserbarcodelezer tot het streepjescodebeeld nodig is, waardoor het lezen moeilijk of onmogelijk wordt boven bepaalde drempellengten/afstanden.
De optimale codering kan worden gevonden met behulp van een dynamisch programmeeralgoritme .
Referenties
Externe links
- GS1-128 Specificatie – Een gedetailleerde lijst van Application Identifiers.
- Barcodesoft – Lettertypetoewijzing van Barcodesoft, die verschilt van de gebruikelijke ascii-toewijzing (zie http://ascii-code.com/ ).
- De 128-code - Leer het Code 128-coderingsalgoritme met een op lettertypen gebaseerde barcode-oplossing.
- Online barcodegenerator – Gratis online barcodegenerator voor de verschillende barcodetypes.
Voorbeeldcode
- ZXing - Multiplatform open source barcodescanner / generator met versies beschikbaar in Java ( kernproject ) en poorten naar ActionScript, C++, C#, ObjectiveC en Ruby.
- Python- streepjescode 128 - Deze code lijkt vakken van één pixel breed te tekenen. Het lijkt erop dat het is gewijzigd van een streepjescode met een korte regel en een lange regel die lijnen zou hebben getrokken. De "zwarte dozen" moeten even groot zijn als de "witte dozen".
- GenCode128 - Gratis C#-broncode-implementatie van Code128. Vrijwel alle features zijn geïmplementeerd, maar is niet 100% compleet.
- Barcode1DTools Ruby gem - Ruby-broncode voor vele 1D-barcodesymbologieën, waaronder Code 128.
- Perl-barcodegeneratiecode - Perl-broncode voor vele 1D-barcodesymbologieën, waaronder Code 128.
- Barcode::Code128 – Gratis Perl- barcodegeneratiemodule .
- GOCR - Gratis OCR met Code 128-herkenning.
- Barcode Code 128 - Gratis JavaScript-broncode-implementatie van Code128.
- Barcode4J – Gratis Java API met implementatie van Code128 en andere standaard barcodes.
- JavaScript-code 128 - Open-source JavaScript-implementatie van Code128 en andere lineaire streepjescodes.
- Introductie van het maken van Code 128-barcodes Gids voor het converteren van tekst naar Code 128-barcodes. Geschreven voor Lazarus (open-source, multi-platform GUI Pascal) maar voor algemeen gebruik.