ImageParser Syntax
Der ImageParser ist ein Modul von CodX PostOffice um die Verarbeitung von Bildern zu steuern.
Ein XML-Konfigurationsfile gibt an, wie das Bild verarbeitet werden soll.
Beispiel ImageParser Konfigurationsfile
<ImageParser Name="Parser
1" Timeout="1000"
Reference="SN-AZD, FE"
Remark="Das ist eine Bemerkung">
<ParserRule Name="Rolle
1" Rotate="0, 30, 60, 90" Origin="top_left">
<Element Name="Element
1" x="100 px" y="200 px" h="50 mm" w="40 mm" Type="Text" Rotate="0, 90, 180, 270" ValidValue="[a-z]+"></Element>
<Element Name="Element
2" x="200 px" y="400 px" h="50 mm" w="40 mm" Type="Barcode" Rotate="0"
InvalidValue="(?<Invalid>[^[0-9a-zA-Z()-/\s\öäüéàèÖÄÜ])"></Element>
<Element Name="Element
3" x="300 px" y="500 px" h="50 mm" w="40 mm" Type="UPOC" Rotate="0" ValidValue="[0-9]+"></Element>
<Criteria Name="Criteria
1" Operation="AND" ElementName="Element 1" RegEx="[a-z]+"></Criteria>
<Criteria Name="Criteria
2" Operation="AND" ElementName="Element 2" RegEx="[0-9]+"></Criteria>
<Criteria Name="Criteria
3" Operation="OR" ElementName="Element 3" RegEx="04[0-9]+"></Criteria>
</ParserRule>
<ParserRule Name="Rolle
2" Rotate="0, -30, -60, -90" Origin="top_left">
<Element Name="Element
1" x="100 px" y="200 px" h="50 mm" w="40 mm" Type="Text" Rotate="0, 90, 180, 270" ValidValue="[a-z]+"></Element>
<Element Name="Element
2" x="200 px" y="400 px" h="50 mm" w="40 mm" Type="Barcode" Rotate="0" ValidValue="[a-z]+"></Element>
<Element Name="Element
3" x="300 px" y="500 px" h="50 mm" w="40 mm" Type="UPOC" Rotate="0" ValidValue="[0-9]+"></Element>
<Criteria Name="Criteria
1" Operation="AND" ElementName="Element 1" RegEx="[a-z]+"></Criteria>
<Criteria Name="Criteria
2" Operation="AND" ElementName="Element 2" RegEx="[0-9]+"></Criteria>
<Criteria Name="Criteria
3" Operation="OR" ElementName="Element 3" RegEx="04[0-9]+"></Criteria>
</ParserRule>
</ImageParser>
Tags
Das XML-Konfigurationsfile ist wie folgt aufgebaut:
ImageParser
Enthält 1 oder mehrere Tags von 'ParserRule'.
Attribut |
Beschreibung |
Name | Name des
ImageParsers |
Timeout | Maximale Verarbeitungszeit in Millisekunden. Wenn das Timeout erreicht ist, wird die Verarbeitung abgebrochen und kein Resultat zurückgegeben.
Dieses Attribut ist optional, der Standardwert beträgt 1000 ms
und der maximal erlaubte Timeout 99999 ms. Wenn der Timeout 0
oder kleiner 0 ist, wird der Timeout auf Standardwert gesetzt,
wenn er grösser als der erlaubte Maximalwert ist wird er auf den
Maximalwert zurückgesetzt. |
Reference | Referenz zum Modul, welches diesen ImageParser einsetzt.
Wird dieser ImageParser bei mehreren Modulen eingesetzt, so werden die Modulnamen mit Komma getrennt aufgeführt.
Folgende Module sind möglich:
- SN-AZD
Dieses Attribut ist optional.
|
Remark | Bemerkung zum ImageParser.
Dieses Attribut ist optional.
|
ParserRule
Enthält 1 oder mehrere Tags von 'Element' und 'Criteria'
Attribut |
Beschreibung |
Name | Name der ParserRule
|
Rotate | Liste der
Winkel, mit welchen der Wert gelesen werden soll. Die Winkel werden mit Komma
getrennt.
Die Winkel steigen im Uhrzeigersinn von 0 bis 360° auf.
ACHTUNG: Jeder zusätzliche Winkel vervielfacht die Verarbeitungszeit zusätzlich!
|
Origin |
Ursprung des Bildes. Alle Koordinaten beziehen sich auf diesen Ursprung.
Mögliche Werte:
- top_left
- top_right
- bottom_left (default)
- bottom_right
Dieses Attribut ist optional.
|
Element
Beschreibt das zu parsende Element.
Attribut |
Beschreibung |
Name | Name des
Elements |
x | Koordinate der
unteren, linken Ecke des Elements.
Die Koordinate bezieht sich auf den Ursprung des Bildes.
Optional kann eine Einheit angegeben werden.
Folgende Einheiten sind möglich:
- px: Pixel (default)
- %: Prozent, bezogen auf das ganze Bild
- mm: Millimenter (nur, wenn Auflösung bekannt).
|
y | Koordinate der
unteren, linken Ecke des Elements.
Die Koordinate bezieht sich auf den Ursprung des Bildes.
Optional kann eine Einheit angegeben werden.
Folgende Einheiten sind möglich:
- px: Pixel (default)
- %: Prozent, bezogen auf das ganze Bild
- mm: Millimenter (nur, wenn Auflösung bekannt).
|
h | Höhe des Elements.
Optional kann eine Einheit angegeben werden.
Folgende Einheiten sind möglich:
- px: Pixel (default)
- %: Prozent, bezogen auf das ganze Bild
- mm: Millimenter (nur, wenn Auflösung bekannt).
|
w | Breite des Elements.
Optional kann eine Einheit angegeben werden.
Folgende Einheiten sind möglich:
- px: Pixel (default)
- %: Prozent, bezogen auf das ganze Bild
- mm: Millimenter (nur, wenn Auflösung bekannt).
|
Type | Typ des Elements.
Folgende
Typen sind möglich:
-
Text: Der Ausschnitt des Elements wird mit OCR analysiert und der erkannte Text
ausgegeben.
-
Barcode: Der Ausschnitt des Elements wird auf einen Barcode untersucht
- UPOC: Der Ausschnitt des Elements wird auf einen Barcode untersucht und
geprüft, ob es sich um einen gültigen UPOC handelt (Typ, Mandant, ID,
Checksumme).
Dieses Attribut ist optional, der Standardwert ist Text.
|
Rotate | Liste der
Winkel, mit welchen der Wert gelesen werden soll. Die Winkel werden mit Komma
getrennt.
Die Winkel steigen im Uhrzeigersinn von 0 bis 360° auf.
ACHTUNG: Jeder zusätzliche Winkel vervielfacht die Verarbeitungszeit zusätzlich!
Dieses Attribut ist optional, der Standardwert beträgt 0°.
|
ValidValue | RegEx-Ausdruck, welcher einen gültigen Wert des Elements definiert. Das Element hat nur dann einen gültigen Wert, wenn dieser gemäss dem RegEx-Ausdruck geprüft wurde. Ansonsten ist der Wert des Elements leer.
Nicht zu verwechseln mit 'RegEx' vom Kriterium.
Ist das Attribut 'ValidValue' nicht angegeben oder leer, so gelten folgende Default-Werte:
- Text: [0-9,a-z,A-Z]+
- Barcode: [0-9,a-z,A-Z]+
- UPOC: [0-9]+
|
InvalidValue
|
RegEx-Ausdruck, welcher alle ungültigen Werte
eines Elements definiert. Das Element darf keinen dieser
ungültigen Werte enthalten, in diesem Fall ist das Element
gültig. Wenn dieses Element erfasst ist, hat dieses Vorrang vor
dem Element "ValidValue".
Ist das Attribut 'InvalidValue' nicht angegeben oder leer, so
bleibt der Default-Wert leer und die Regel für 'ValidValue' ist
aktiv. |
Criteria
Beschreibt die Kriterien die erfüllt sein müssen, dass diese ParserRule zum Tragen kommt. Falls die Kriterien nicht erfüllt sind, wird die nächste ParserRule verarbeitet.
Dies darf nicht mit 'ValidValue' des Elements verwechselt werden!
Attribut |
Beschreibung |
Name | Name des Kriteriums |
Operation | Gibt an, wie das Kriterium logisch verknüpft wird.
Mögliche Werte: 'AND', 'OR'
|
ElementName | Name des Elements, welches geprüft werden soll. |
RegEx | RegEx-Ausdruck, welcher erfüllt sein muss. |
Funktionsweise
Der ImageParser funktioniert wie folgt:
-
Das Bild wird mit dem entsprechenden Gerät (OCR-Station,
Dokumentenscanner, CxLetterScan usw.) aufgenommen.
-
Der ImageParser lädt die entsprechende XML-Konfigurationsdatei und
liest diese aus.
-
Das Bild wird gemäss der ersten ParserRule zerlegt. Dabei werden die
entsprechenden Elemente ausgeschnitten und entsprechend verarbeitet (z.B. OCR,
Barcode-Lesung usw.)
-
Anhand der gelesenen Daten werden die Kriterien ausgewertet.
Enthalten einzelne Elemente Rotationen, so werden diese der Reihe nach
verarbeitet, bis das Kriterium erfüllt ist oder keine weiteren Rotationen
vorhanden sind.
-
Sind alle Kriterien ausgewertet wird geprüft, ob alle gemäss den
Operationen gültig sind. Ist dies der Falls, so wird die Verarbeitung
abgebrochen und die gelesenen Werte zurückgegeben. Enthält die ParserRule
Rotationen, so werden die obenstehenden Schritte für jede Rotation durchgeführt,
bis alle Kriterien erfüllt sind oder keine Rotationen mehr vorhanden sind.
-
Erfüllt keine Variante die definirten Kriteren, so wird das Bild
analog mit der zweiten ParserRule verarbeitet.
-
Es können praktisch beliebig viele ParserRule definiert sein. Diese
werden gemäss Reihenfolge der XML-Konfigurationsdatei verarbeitet bis alle
Kriterien einer ParserRule erfüllt sind.
-
Erfüllt keine ParserRule die definierten Kriterien oder wird das Timeout erreicht, so wird die
Verarbeitung abgebrochen und leere Werte zurückgegeben. Der nachfolgende
Verarbeitungsschritt definiert das weitere Verfahren im Prozess.
|
|
CodX Software AG
Sinserstrasse 47
6330 Cham
Switzerland |
Support
http://support.codx.ch
|
|
|