Barcodes

webPDF unterstützt die Erkennung und Erstellung von Barcodes (Webservice "Barcode") in verschiedenen gängigen Barcode-Formaten.

 

Über die Parameter "<add>" (Erstellung) und "<detect>" (Erkennung) wird für den Webservice "Barcode" der Modus festgelegt. Über die Parameter kann die Erstellung bzw. Erkennung beeinflusst werden.

 

Erkennungsmodus

 

Im Erkennungsmodus sucht der Webservice sämtliche gewählten Barcodeformate im gewählten Bereich des PDF-Dokuments. Abhängig von der gewählten Option kann der Webservice diese Ergebnisse in Form eines JSON- oder XML Dokuments strukturieren.

 

tipp

Für die meisten Barcodeformate ist dies zwar nicht zwingend nötig, aber die benötigte Analysezeit kann grundsätzlich deutlich reduziert werden, wenn die Zahl der untersuchten Seiten und der untersuchte Bildbereich auf diesen Seiten eingeschränkt wird.

 

hint

Sollten sich mehrere Barcodes des gleichen Formats auf der selben Seite befinden, so ist es absolut sinnvoll den untersuchten Bildbereich grundsätzlich einzuschränken, da ansonsten die Detektion fehlschlagen kann. Es empfiehlt sich in diesem Fall für jeden Barcode einen eigenen Bildbereich auszuwählen und sie separat zu erfassen.

 

hint

Die Ergebnisliste des Erkennungsmodus enthält niemals Duplikate für eine untersuchte Seite. Wird ein Barcode mit dem gleichen Inhalt und Format auf einer Seite mehrmals gefunden, so wird er nur einmal gelistet werden.

 

Erstellungsmodus

 

Im Erstellungsmodus erzeugt der Webservice einen Barcode im gewählten Format und platziert diesen auf beliebig vielen Seiten des übergebenen PDF-Dokuments. Es wird immer ein PDF Dokument als Ausgangsdokument erwartet.

 

Unterstützte Formate

 

Bei der Erstellung und Erkennung werden die folgenden Barcode-Format unterstützt.

 

Ein Dimensionale Barcodes

Ein dimensionale Barcodes sind in der Regel Strichcodes, die Werte durch eine Abfolge von Strichen unterschiedlicher Stärke codieren. Für solche Barcode Formate ist nur diese Abfolge relevant und nicht die Höhe der Striche, weshalb sie auch als ein dimensionale Barcodes bezeichnet werden. 1D Barcodes stellen damit in der Regel keine oder wenige Anforderungen an die Höhe des Barcodes, während ihre Breite hingegen stark reglementiert ist, da die Abfolge von leeren Bildbereichen und Strichen und vor allem deren Breitenverhältnisse exakt den Vorgaben entsprechen müssen.

 

Codabar

A-D, 0-9,

6 Sonderzeichen

Kapazität:

16 Ziffern +4 optionale Zeichen als Start und Endzeichen

Encodierter Wert: A1234567890A

codabar

 

Der Codabar Strichcode wurde ursprünglich für den Einzelhandel entwickelt, spielt dort allerdings nur noch eine untergeordnete Rolle. Aktuell wird Codabar vor allem in Bibliotheken, Fotolabors, Blutbanken und weiteren ausgewählten Bereichen verwendet. Die Start und Endzeichen geben in der Regel Aufschluss darüber welchem Zweck die encodierte Information dient. Aufgrund der typischerweise großen Abstände und Strichstärken ist Codabar auch bei niedrigen Auflösungen und Ausdrucken mit schlechter Qualität noch leicht lesbar, macht diesen Vorteil allerdings durch seine niedrige Informationskapazität bei hohem Platzbedarf wieder hinfällig.

 

Code 39

Zeichensatz:

A-Z, 0-9,

5 Sonderzeichen

Kapazität:

Variabel

Encodierter Wert: *WEBPDF$*

code 39

 

Der Barcode Code 3 of 9 verdankt seinen Namen dem Umstand, dass drei der zur Encodierung eines Codeworts genutzten neun Elemente (Striche) breiter sind als die anderen. Code39 ermöglicht optional die Nutzung eines Prüfzeichens, gilt aber im allgemeinen allein schon aufgrund seiner Codewortstruktur als selbst korrigierend. Er ist dank seines großen Zeichenvorrats, seiner variablen Länge und leichten Erstellbarkeit in vielen Bereichen wie Elektronik Industrie, Chemie Industrie, Lagerhaltung, Transport etc. im breiten Einsatz. Start und Endzeichen sind immer das Asterisk Symbol, werden aber daher auch gerne bei der Eingabe/Ausgabe eines Code 39 weg gelassen und im Hintergrund automatisch gehandhabt. Das Format verfügt allerdings über eine sehr geringe Informationsdichte pro verwendeter Platzeinheit und mittlerweile über einen geringeren Zeichensatz, als zum Beispiel Code 128.

 

Code 128

Zeichensatz:

128A:

A-Z, 0-9,

ASCII Sonderzeichen,

ASCII Kontrollcodes,

FNC 1-4

 

128B:

A-Z, a-z, 0-9,

ASCII Sonderzeichen,

FNC 1-4

 

128C:

00-99

 

Kapazität:

Variabel

Encodierter Wert: webPDF

code 128

Code 128 verdankt seinen Namen dem Umstand, dass er alle 128 ASCII Zeichen unterstützt. Die Besonderheit von Code 128 ist augenscheinlich zunächst einmal die Möglichkeit im selben Barcode zwischen 3 verschiedenen Zeichensätzen zu wechseln, dies ermöglicht eine größere Informationsdichte und vergrößert den Zeichenvorrat noch weiter. Die Drei Zeichensätze stellen keine eigenständigen Formate dar, da ein Code128 Barcode in der Regel zwischen allen drei Zeichensätzen beliebig wechselt, um den Inhalt möglichst kompakt abbilden zu können. Code 128 bietet Darüber hinaus 4 Funktionszeichen an, von denen beispielsweise FNC4 den Zeichensatz nochmals um alle LATIN-1 (ISO-8859-1) Zeichen erweitert. Das Format ist weltweit vor allem in Verpackung und Versand sehr gebräuchlich. Verfügt über eigene spezialisierte Start- und Stop Zeichen und die Möglichkeit eine Prüfsumme zu erstellen.

 

EAN 13

Zeichensatz:

0-9

Kapazität:

13 Ziffern

Encodierter Wert: 5901234123457

ean 13

 

Das Format "European Article Number 13" ist ein weit verbreitetes Barcode Format zur Produktmarkierung im Einzelhandel - die Zahl 13 bezieht sich auf die maximale Kapazität von 13 Ziffern. Der Barcode ist vor allem deshalb interessant, da er über eine feste Länge und einen strikt standardisierten Inhalt verfügt. Ein EAN 13 Barcode besteht aus einem GS1 Länderpräfix, der Unternehmensnummer, der eigentlichen Artikelnummer und einer Prüfziffer. Insgesamt ist das Format damit ein sehr leicht und schnell lesbarer Code, der auch eine problemlose manuelle Eingabe ermöglicht. Der Ländercode kann zum Beispiel in Supermärkten auch durch einen internen Code ersetzt werden, der die Verwendung des Produkts spezifiziert.

 

EAN 8

Zeichensatz:

0-9

Kapazität:

8 Ziffern

Encodierter Wert: 65833254

ean 8

 

Das Format "European Article Number 8" ist eine kürzere Form des EAN 13 Barcodes - die Zahl 8 bezieht sich auf die maximale Kapazität von 8 Ziffern. Der Barcode ist vor allem deshalb interessant, da er eine feste und vor allem vergleichsweise sehr kurze Länge besitzt. Ein EAN-8 Barcode ist vor allem zur Produktmarkierung all der Produkte gedacht für die ein EAN 13 Barcode zu lang wäre. Ein EAN 8 Barcode besteht aus einem GS1 Länderpräfix, der eigentlichen Artikelnummer und einer Prüfziffer. Insgesamt ist das Format damit ein sehr leicht und schnell lesbarer Code, der auch eine problemlose manuelle Eingabe ermöglicht.

 

UPC A

Zeichensatz:

0-9

Kapazität:

12 Ziffern

Encodierter Wert: 03600029145

upc a

 

Der Universal Product Code ist ähnlich wie die EAN Barcodes ein Format zur Produktmarkierung im Einzelhandel, die kompatibel zu EAN Codes sind. UPC ist das einzige in den USA und Kanada akzeptierte Format zur Produktmarkierung und unterscheidet sich von EAN 13 vor allem durch die voran gestellte Verwendungsziffer:

0 - normaler UPC Code

2 - Produkte die nach Gewicht berechnet werden

3 - NDC (National Drug Code) und HRI(Health Related Items) Codes - also medizinische Produkte

4 - Uneingeschränkter UPC Code

5 - Gutschein

6 - normaler UPC Code

7 - normaler UPC Codex

Die Ziffern 1,8 und 9 sind für spätere Zuweisungen reserviert. Die zweite bis sechste Ziffer geben den Hersteller des Produktes an, darauf folgt die Artikelnummer und schließlich die Prüfziffer. UPC Codes werden anders als EAN Barcodes weltweit akzeptiert und daher vor allem von international agierenden Unternehmen bevorzugt verwendet. Das Format ist leicht und schnell lesbar und ermöglicht eine problemlose manuelle Eingabe.

 

ITF

0-9

14 Ziffern

Encodierter Wert: 98765432109213

itf

 

Ähnlich wie UPC und EAN Barcodes ist Interleaved 2 of 5 (genauer ITF-14) ein Barcodeformat, das im Einzelhandel genutzt wird. ITF-14 wird dabei aber vor allem zur Markierung von Versandverpackungen und Paletten genutzt. Die erste Ziffer gibt hierbei die Packungsart an, die nächsten 12 Ziffern enthalten die Artikelnummer und die letzte Ziffer ist die Prüfziffer. Das Format erhält seinen Namen durch die Art in der Informationen abgelegt werden - Zwei Ziffern werden je Paarweise abgebildet, wobei die erste Ziffer durch fünf Striche und die zweite durch die fünf hinter diesen Strichen liegenden Lücken dargestellt werden, hierdurch wird eine relativ hohe Informationsdichte erreicht.

Das Ursprungsformat ITF verfügte über keinerlei Zeichenlimitierungen, ist allerdings nicht mehr wirklich gebräuchlich.

 

Zwei Dimensionale Barcodes

Zwei dimensionale Barcodes encodieren ihren Wert in einer zwei dimensionalen Ebene in Form schwarzer und weißer Pixel. Sie verfügen in der Regel über eine wesentlich höhere Informationskapazität als 1D Barcodes, sind aber aufgrund der höheren Komplexität auch teils wesentlich anfälliger für Bildfehler, woraus die Notwendigkeit eines Verfahrens zur Fehlerkorrektur resultiert. Für 2D Barcodes ist sowohl ihre Höhe als auch Breite stark reglementiert, denn potentiell enthält jeder Bildpunkt des Codes wichtige Informationen. Sie stellen somit sehr häufig Anforderungen an die wählbaren Höhen und Breiten, die Seitenverhältnisse oder allgemein die geometrische Form des Barcodes.

 

DataMatrix

Zeichensatz:

ASCII(1-255)

Kapazität:

Variabel

Encodierter Wert: webPDF

data matrix

 

DataMatrix encodiert die übergebenen Inhalte im Datenbereich durch gefüllte und leere Quadrate und verfügt dabei (je nach gewähltem Typus) entweder über eine quadratische oder rechteckige Grundform. Die DataMatrix verfügt über einen durchgezogenen Rand am linken und unteren Rand und über segmentierte Linien am oberen und rechten Rand - über diesen Rand ist einerseits der Barcode lokalisierbar und andererseits ist seine Rotation so feststellbar. Ein DataMatrix Barcode verfügt über eine integrierte Fehlerkorrektur nach dem Reed-Solomon Algorithmus, womit Teile der Matrix auch nach starken Beschädigungen des Codes regeneriert werden können.

 

hint

Bei der Erkennung von DataMatrix Barcodes mittels des Webservices ist dringend darauf zu achten, dass der untersuchte Bildbereich auf den DataMatrix Code beschränkt wird, sodass sich der DataMatrix Code möglichst im Zentrum des Bereichs befindet. Störquellen wie Schrift oder andere Bilder sollten möglichst vermieden werden. Des weiteren erfordert ein DataMatrix Code rund herum dringend einen "Ruhebereich" (also Rahmen), dessen Breite mindestens der Seitenlänge eines Encodierungszeichens entsprechen soll.

Beispiel: Entspricht ein DataMatrix Punkt also zum Beispiel 2 mal 2 Pixeln, so muss der Ruhebereich mindestens 2 Pixel breit sein.

 

QR code

Zeichensatz:

ASCII(1-255)

Kapazität:

Variabel

Encodierter Wert: webPDF

qr code

 

Quick Response Codes encodieren Informationen ähnlich wie eine DataMatrix durch gefüllte und leere Quadrate in einer quadratischen Grundform. QR Codes sind dahingehend optimiert möglichst schnell maschinell erkannt und gelesen werden zu können. Gerade im Mobiltelefon Umfeld sind QR Codes sehr beliebt um Informationen (wie beispielsweise eine Webadresse) in einem einfach abgreifbaren Format zu hinterlegen. (Mobile Tagging). QR Codes verfügen in der Regel über drei Positionsmarker, die dem Lesegerät die Erkennung des Barcodes und dessen Orientierung vereinfachen. Der maximal denkbare Informationsgehalt eines QR Codes beträgt 2,956 kB, allerdings hängt diese Kapazität auch vom gewählten Fehlerkorrekturlevel ab. Das Fehlerkorrekturlevel gibt an wie viel Prozent der encodierten Daten mittels des Reed-Solomon Algorithmus abgesichert werden sollen (Low 7%, Medium 15%, Quartile 25%, High 30%). Entsprechend dieses Wertes sinkt allerdings auch die verbleibende Kapazität des Codes - je höher das Level gewählt wird, desto stärkeren Beschädigungen hält allerdings der Barcode stand bevor er unlesbar wird.

 

Aztec

Zeichensatz:

ASCII(0-127), Extended ASCII

Kapazität:

Variabel

Encodierter Wert: webPDF

aztec

 

Aztec Codes encodieren Information indem sie leere und gefüllte Quadrate konzentrisch um ein quadratisches Kernelement herum anordnen. Das Kernelement ermöglicht die Erkennung des Barcodes und gibt zudem die Orientierung des Barcodes an. Die entstehende Struktur erinnert an eine Stufenpyramide, daher der Name des Formats. Jede hinzugefügte Ebene kann mit steigender Seitenlänge mehr Daten abbilden und besteht aus zwei Ringen von Encodierungszeichen. Ebenen werden vom Kern aus nach Bedarf außen angefügt, womit Aztec Codes mit steigender Länge der encodierten Nachricht immer mehr Fläche benötigen. Ein Aztec Barcode verfügt über eine integrierte stufenlose, prozentuale Fehlerkorrektur nach dem Reed-Solomon Algorithmus, womit Teile der Matrix auch nach starken Beschädigungen des Codes regeneriert werden können. Aztec Codes werden bislang vor allem zur Beschriftung pharmazeutischer Produkte und auf Fahrkarten öffentlicher Verkehrsnetze eingesetzt.

 

hint

Bei der Erkennung von Aztec Barcodes mittels des Webservices ist dringend darauf zu achten, dass der untersuchte Bildbereich auf den Aztec Code beschränkt wird, sodass sich der Code möglichst im Zentrum des Bereichs befindet.

 

PDF 417

Zeichensatz:

ASCII

Kapazität:

Variabel

Encodierter Wert: webPDF

PDF 417

 

Das Barcode Format "Portable Data Format 417" dient in erster Linie der Encodierung größerer Datenmengen. Jedes Muster des Codes besteht hierbei aus 4 Stäben und 4 Leerflächen und jedes dieser Muster ist 17 Encodierungseinheiten lang, daher die Bezeichnung 417. PDF417 Barcodes können aus 3 bis 90 Reihen bestehen, von denen jede einzelne im Grunde einen 1D Barcode darstellt, jede dieser Zeilen enthält Informationen bezüglich ihres Inhaltes, ihrer Zeilennummer und ähnliches. Aufgrund dieser Eigenständigkeit der einzelnen Zeilen können PDF417 Barcodes problemlos auch von den meisten linearen Scannern gelesen werden, was sie deutlich von allen anderen 2D Barcodes abhebt, die eine komplexere Bilderkennung benötigen. PDF417 Barcodes realisieren eine interne 8 stufige Reed-Solomon Fehlerkorrektur und sind somit je nach Stufe resistenter gegen Beschädigungen des Codes. PDF 417 ermöglicht zusätzlich die Qualifizierung des encodierten Inhaltes - je nach Wahl wird für ein einzelnes Codewort eine bestimmte Anzahl an Codeworten benötigt - wodurch der Barcode verdichtet werden kann:

 

Text - ein Codewort bildet zwei Buchstaben ab.

Byte - je 5 Codewörter bilden 6Bytes ab.

Numeric - bis zu 15 Coderwörter bilden Zahlen mit einer Länge von bis zu 44 Ziffern ab.

 

Ausgabeformate

 

Der Barcode Webservice erlaubt im Erkennungsmodus zwei verschiedene Ausgabeformate für das Dokument mit den gefundenen Barcodes. Das Ausgabeformat kann über die Option "outputFormat" bei den Parametern bestimmt werden.

 

tipp

Das Format des Dokuments wird über das Schema http://schema.webpdf.de/1.0/extraction/barcode.xsd beschrieben.

 

XML

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<barcodes xmlns="http://schema.webpdf.de/1.0/extraction/barcode">
  <barcode type="qrcode" page="61" errorCorrectionLevel="L">
      <rectangle coordinates="user" x="407.0" y="73.0" width="43.5" height="44.0"/>
      <rectangle coordinates="pdf" x="407.0" y="725.0" width="43.5" height="44.0"/>
      <plain>webPDF</plain>
  </barcode>
   ....
</barcodes>

 

Jedes in "<barcodes>" enthaltene "<barcode>" Element repräsentiert einen erkannten Barcode, dessen Attribute "page" und "type" geben Seite und Format des Barcodes an. Darüber hinaus können Attribute zusätzlichen Metainformationen folgen, die abhängig vom Barcodeformat weitere Informationen über den Barcode enthalten können.

 

Das Element "<plain>" enthält den decodierten Wert des Barcodes und die Elemente "<rectangle>" die Position des Barcodes in der Seite.

 

JSON

 

Die Struktur im JSON-Format entspricht den Inhalten der XML-Struktur.

 

{
"barcodes" : {
  "barcode" : [ {
    "rectangle" : [ {
      "x" : 407.0,
      "y" : 73.0,
      "width" : 43.5,
      "height" : 44.0,
      "coordinates" : "user"
     }, {
      "x" : 407.0,
      "y" : 725.0,
      "width" : 43.5,
      "height" : 44.0,
      "coordinates" : "pdf"
     } ],
    "plain" : "webPDF",
    "type" : "qrcode",
    "page" : 61,
    "errorCorrectionLevel" : "L"
   },.... ]
 }
}