Stregkodeformater
Lineære 1D stregkoder
En lineær stregkode består af et mønster af streger af varierende bredde, der kan aflæses optisk og dekodes som en slags morsekode i selve stregkodelæseren til forskellige tegnsæt. Stregkoderne er opbygget efter forskellige standarder - mest kendt er nok EAN/JAN-13, der benyttes på dagligvarer i supermarkeder. Den lineære 1D stregkode, er den mest anvendte og velkendte stregkode. Det er denne som anvendes i større omfang i detailhandlen. Herunder ses en liste med 13 af de mest benyttede lineære stregkoder.
Som det fremgår af tabellen, er det kun nogle få kodetyper, der tillader ASCII tegn. Udvalget af typer, der kun kan dekode cifre er langt større. Extended 39 tillader foruden de almindelige ASCII tegn også kontroltegn – dvs. ASCII værdier under 32. Stregkoden kan indeholde en checksum, der, hvis den benyttes, tilføjes til slut i stregkoden. Cheksum anbefales især på MSI og Interleaved 2 af 5, der begge er meget tætte. Stregkoden har også start- og sluttegn, så dekoderen kan bestemme, om koden er læst forlæns eller baglæns.
2D stregkoder
Det var især behovet for større datakapacitet, der satte gang i udviklingen af de langt mere avancerede ”2D”-stregkoder, der kaldes sådan, fordi de skrevne koder udgør en kompakt matrix af sorte og hvide felter. Her ses et større omfang af diverse mønstre og firkanter, som bruges til kode data. Den lineære 1D stregkodeformat var begrænset, da stregkoden ville blive for lang, da stregkoderne stod klods op ad hinanden. Ved 2D skaber der mere plads, da mønstrene kan placeres vilkårligt.
Dette opnås fordi felt fylder langt mindre end de lodrette sorte og hvide felter i 1D-stregkoder. Samtidig benyttes i 2D stregkoder gerne ret avancerede datakompressionsalgoritmer (bl.a. vil tegn, som optræder ofte, blive tildelt koder med færre bits)
Fejlkorrektion
Da 2D-stregkoderne er så kompakte, er der større risiko for, at enkelte sorte og hvide felter læses forkert. Derfor bruges avancerede algoritmer til automatisk fejlkorrektion, der benytter sig af, at der i koden tilføjes redundante data, som bruges til at gendanne den korrekte kode, hvis nogle felter aflæses forkert. Ved skrivning af koden er der mulighed for at vælge graden af sikkerhed for korrekt læsning. Højere grader af sikkerhed tillader korrekt læsning – selv med mange fejlaflæste felter. Til gengæld kræver det flere redundante data – d.v.s flere felter og mere plads. Selv om 25-60% (Afhængigt af den valgte grad af sikkerhed) af felterne læses med fejl, er der mulighed for at gendanne de korrekte data.
Praktisk printformat
En lineær stregkode kan, hvis den indeholder mange tegn, blive så lang, at den falder uden for læsebredden af visse 1D-læsere og den kan være vanskelig at sigte på. 2D-læserne scanner normalt et omtrent kvadratisk område. Mange 2D-stregkoder (eks: QR kode og Data Matrix) er da også kvadratiske og for PDF417 kan forholdet mellem bredde og højde vælges frit inden for visse grænser.
Nye læsemuligheder
Nogle af vore 2D-læsere kan læse 2D-koderne ”omnidirektionelt” – d.v.s. i en vilkårlig retning, så der ikke er behov for at orientere læserne i en bestemt vinkel i forhold til den printede stregkode, i modsætning til 1D læserne.
Formatet af 2D-stregkoderne passer bedre til billedformatet i et kamera. Derfor kan man også med mange nyere mobiltelefoner, der har indbygget kamera, automatisk indlæse data – fx. adresser, e-mail-adresser, web-adresser, telefonnumre og sms.
Som bruger af 2D-stregkoder har man heldigvis ikke behov for at kende til de meget komplekse algoritmer, der ligger bag. Det gælder både ved læsning og ved skrivning af 2D-koder. Det kan dog være nyttigt at have et vist kendskab til karakteristika for de mest brugte 2D-koder.
PDF417
PDF417 betegner ”Portable Data File”.
Den kaldes en ”stacked linear barcode” fordi den består af et antal (fra 3 til 90) lineære stregkoder stablet over hinanden, som det ses på eksemplet, (der har 9 lineære stregkoder.
Eksemplet viser stregkoden fra et boardingkort fra KLM.
Hver af de lineære stregkoder består af et antal datablokke, hvor hver datablok består af et mønster af 17 sorte og hvide felter (Herfra kommer ”17” i nummeret ”417”) men felterne er placeret, så de altid udgør 4 sorte og 4 hvide områder af vekslende længde (Herfra kommer ”4” i nummeret ”417”). Desuden indledes hver datablok altid med et sort og afsluttes med et hvidt felt, som eksemplet også viser. Det betyder, at hver datablok kan læses som 929 forskellige varianter af bitmønstre. Heraf bruges de 900 til data og de 29 til specielle funktioner
Hver af de lineære stregkoder har samme start- og slut-datablok. De øvrige datablokke rummer kodens data – inkl. information om kodens struktur (1. datablok efter start-datablokken) samt information om kompression, graden af sikkerhed og brugen af redundante data (én eller flere datablokke inden slut-datablokken), der som det ses, varierer fra række til række. Hver af de lineære koder består altså af mindst 5 datablokke (inkl. start- og stop-blok), men ellers kan man ved skrivning af koden vælge den højde (max 90 stregkoder) og bredde, der giver det mest bekvemme format.
Matrix typerne QR kode og Data Matrix
QR koden og Data Matrix er eksempler på de mest benyttede 2D stregkoder.
De siges begge at være af ”matrix” typen, idet de består af et mønster af sorte og hvide felter, hvori store datamængder kan repræsenteres.
QR koden (Quick Response) er skabt af firmaet Denso-Wave fra Japan i 1994. Den blev oprindelig benyttet til at mærke dele i bilindustrien.
I dag er QR koden stadig mest udbredt i Japan på reklamer og skilte. F.eks. kan ventende buspassagerer ved stoppesteder med deres mobiltelefoner læse en QR kode, der åbner en webside med køreplan og opdaterede trafikinformationer.
QR koden kendes let på de særlige felter ( ), der bruges til at orientere koden.
Data Matrix Kendes let på, at kodens 2 kanter består af lutter sorte felter og de 2 andre kanter af skiftevis sorte og hvide felter. Den indbyggede sikkerhed betyder, at de korrekte data kan gendannes selv om op til 25% af felterne fejlaflæses.
For Data Matrix, kan brugeren ikke vælge varierende grader af sikkerhed ved skrivning. Data Matrix er blevet meget brugt til anvendelse på etiketter og konvolutter.
Typiske læseafstande
HID eller Seriel?
Stregkodelæsere fås som regel med seriel interface, USB interface eller med tastaturinterface. Stregkodelæsere med tastaturinterface betegnes ofte som ”Human Interface Devices” – eller ”HID”. Også læsere med serielt interface – og især typer med USB-interface – kan gerne bruges som HID, hvor det kan være praktisk at benytte sig af pre- og post-amble.
Pre-amble og Post-amble
De fleste stregkodelæsere kan konfigureres til automatisk at sende et eller flere tegn til computeren før og efter data fra stregkoden sendes. Disse ekstra tegn kaldes ”Pre-amble” og ”Post-amble”. Det er især nyttigt ved brugen af stregkodelæsere til tastaturporten, så programmet kan skelne hvilke data, der stammer fra tastaturet og hvilke der stammer fra stregkodelæseren. I så fald bør pre- og post-amble bestå af tegnsekvenser, som ikke kan sendes fra tastaturet. Pre- og post-amble kan imidlertid også bruges til at automatisere indlæsning af data i programmer, der ikke specifikt er beregnet til brug med stregkodelæsere. Det kan f.eks. være et regnearksprogram, hvor indbetalinger skal registreres. Ved manuel brug tastes følgende: F3, TAB ,TAB, kundenummer, beløb, og ENTER for at registrere betalingen.
Anvendes i stedet en stregkodelæser og stregkoder, der indeholder et kundenummer og et beløb i kroner, kan pre-amble være indprogrammeret, så stregkodelæseren afsender F3, TAB ,TAB, hvorefter stregkoden med kundenummer og beløb dekodes. Hvis post-amble er programmeret til at afsende ENTER, kan man på den måde foretage en lang række indtastninger automatisk vha. stregkodelæseren uden at røre tastaturet.
Skrivning af stregkoder
Når det gælder udskrift af stregkoder står valget mellem at generere stregkoderne i computeren eller i printeren.
Stregkoder installeret under Windows, Linux eller Mac
Hvis man f.eks. har brug for at printe stregkoder i Windows-programmer, er det gerne mest bekvemt at installere en skrifttype font, der kan installeres, så den kan bruges fra de Windows-applikationer, hvor man kan vælge skrifttyper til udskrift (Excel, Access, Word, m. fl.) Se mere information - f.eks. på: https://www.barcodefontsoftware.comhvor de mest brugte 1D- og 2D-streg-koder kan downloades. Se også på: https://www.tec-it.comder også har softwarepakker for programmører, der vil udvikle programmer, der bruger stregkoder til Microsoft® Windows, UNIX®, Linux® og Mac OS X®.
Stregkoder installeret i printere
Den anden mulighed består i at bruge printere med indbyggede stregkode-skrifttyper. Det vil normalt kræve en PCL-kompatibel printer. Man kan altså ikke bruge de såkaldte ”Windows printere”, som ikke har indbyggede skrifttyper. Nogle printere – især Kyocera printere – har i standardversionen indbygget stregkoder, men ellers kan der i de fleste PCL-printere installeres moduler med ekstra skrifttyper – herunder også stregkode-skrifttyper. Det gælder normalt kun 1D stregkoder.
Testudskrift af stregkoder
For at vælge en stregkode kan det være nyttigt først at eksperimentere med den i praksis. En god dansk webside til generering af QR-koder er Springfeed.