iPaper MDX AddOn

Zuletzt geändert von Wolfgang May am 2021/02/03 18:21

Das MDX AddOn für iPaper ermöglicht es Dokumente automatisch zu erkennen und mit Briefpapier zu hinterlegen. Diese automatische Verarbeitung wird über die aus dem Dokument ausgelesenen Informationen gesteuert.

Templates

Um die MDX Einstellungen konfigurieren zu können muss zuerst ein Template erstellt werden. Templates sind die Voraussetzung um die Dokumente zu erkennen, zu teilen und die gewünschte Information daraus auszulesen. Einem Template können mehrere Layouts zugeordnet werden, die die gleichen Felder enthalten und gleich verarbeitet werden sollen, wobei jedes Layout ein anderes Briefpapier auf das Dokument anwenden kann.

Es können mehrere Templates angelegt werden. Die Einstellungen werden dabei standardmäßig als PMDX Datei im Briefpapier Ordner (Standard Pfad: C:\Users\<user>\AppData\Roaming\iPaper.NET\Stationeries) gespeichert. Templates können dadurch exportiert und z.B. auf einer anderen Arbeitsstation importiert werden um Einstellungen zu transferieren.

Um z.B. Eingangsrechnungen zu verarbeiten gibt es ein einziges Rechnungs-Template mit den Feldern Firma, Nummer, Datum und Betrag. Pro Lieferant gibt es dann ein Layout (+ Briefpapier) um die unterschiedlichen Rechnungsformulare abzubilden. Layouts werden über Bedingungen erkannt und legen die Felder auf dem Formular fest.

ipaper-konfig-interface-TN.pngmdx-konfig-interface-TN.png

Template Funktionen

  • Templates werden über Namen verwaltet - Neu anlegen, Kopieren, Umbenennen, Löschen, Vorlage exportieren/importieren, Alle Vorlagen exportieren
  • Felder hinzufügen, löschen, verschieben hinauf/hinunter
  • Feld Definition - Name, Typ (Text, Ziffern, Buchstaben, Buchstaben und Ziffern, Barcode), Teilstringsuche
  • String Aufbereitung - Führende Nullen entfernen, Entfernen von Text oder Zeichen Links/Rechts, Groß- und Kleinschreibung ignorieren, Text ersetzen
  • Definition - Dezimal und Tausender Trennzeichen - Punkt, Beistrich, Kein

neues-template-anlegen-TN.png

Feld Definition

Felder

Hier werden Felder angelegt und konfiguriert, mit denen bei der Verarbeitung Informationen extrahiert werden. Es können beliebige Felder definiert und im Layout zum Auslesen von Informationen aus Dokumenten verwendet werden. Die Variablen werden mit dem asugelesenen Text belegt und können für die Weiterverarbeitung als Metadaten verwendet werden. Es muss ein Feldname angegeben und ein Typ für das Feld definiert werden.

felder-anlegen-TN.png

String Aufbereitung

Es stehen weitere Optionen pro Feld zur Verfügung um den ausgelesenen Inhalt weiter zu bearbeiten und anzupassen.

string-aufbereitung-text-TN.pngstring-aufbereitung-datum-TN.png
  • Standardwert

    Im Normalfall können Informationen aus dem Dokument ausgelesen und Feldern zugeordnet werden. Es gibt aber Fälle in denen es nicht möglich ist bestimmte Informationen, die weggeschrieben werden sollen, auszulesen. Zum Beispiel kann es vorkommen, dass bei einer Rechnung, die als PDF vorliegt, der Lieferant für die Gestaltung des Formulars nur Bilder verwendet hat und es daher keinen Bereich gibt über den man den Firmennamen auslesen kann - das Layout aber über andere Kriterien erkannt und eindeutig zugeordnet werden kann. Für den Fall wird das Feld "Firma" nicht auf dem Layout positioniert, kann aber über die "Standardwert" Option mit dem Namen der Firma belegt werden um die Information in weiterer Folge als Variable verwenden zu können.
     
  • Regular Expression

    RegEx Regeln können für jedes Feld definiert werden und ermöglichen eine Aufbereitung und Filterung der extrahierten Feldinhalte, z.B.:
    "[a,b]+" entspricht "a", "b", "aa", "bbaab", etc.
    "[0-9]{2,5}" entspricht zwei, drei, vier oder fünf Ziffern in Folge, z.B.: "42" oder "53810", jedoch nicht den Zeichenfolgen "0", "1.1" oder "a1b2"

    Über den RegEx Ausdruck "\d+" können Zahlen eines Feldes zurückgeliefert werden. Wird kein Parameter angegeben, so wird automatisch die "erste der längsten der gefundenen Zahlen "zurückgeliefert". Zum Beispiel der ausgegebene Feldinhalt ist "Seite 15/110", so wird "110" zurückgeliefert. Zusammen mit dem Parameter Treffer kann gezielt eine Zahl einer bestimmten Position aus dem String extrahiert werden. Mit dem Parameter = 1 wird die erste in dem String gefundene Zahl ("15") mit = 2 wird die zweite ("110") usw. zurückgeliefert.

    Es ist möglich die RegEx Verarbeitung in Kombination mit den String Aufbereitungs Funktionen (Teilstring, Entferne Links/Rechts, etc.) zu verwenden. Dabei wird immer die RegEx Verarbeitung ausgeführt und anschließend die weiteren Aufbereitungen.
     
  • Entferne Links/Rechts als Zeichen/Text

    Diese Option entfernt Zeichen oder auch ganzen Text aus dem extrahierten Inhalt, entweder von links nach rechts oder umgekehrt. Es können die zu entfernenden Zeichen vorausgewählt werden.
    Optional kann hierbei die Groß - und Kleinschreibung ignoriert werden.
    Es gibt auch Funktionen um Leerzeichen und führende Nullen aus dem ausgelesenen Inhalt zu entfernen.
     
  • Text ersetzen

    Mit dieser Funktion können Texte vordefiniert werden nach denen gesucht werden soll und Texte durch die sie ersetzt werden sollen. Der ausgelesene Feldinhalt wird nach diesen Texten durchsucht - werden sie gefunden, so werden sie durch den angegebenen Text ersetzt.

Barcode Erkennung

Bei den Feldern gibt es auch die Möglichkeit "Barcode" auszuwählen. Damit lassen sich Barcodes innerhalb des markierten Feldbereichs erkennen. Der Barcodewert wird als Feldinhalt zurückgeliefert. Über die Barcode Einstellungen kann festgelegt werden, welche Barcode Typen erkannt werden sollen. Die Barcode Erkennung wird auch direkt bei der Feldpositionierung und bei der Test Funktion ausgeführt. Damit ist gleich ersichtlich ob der Barcode erkannt wird bzw. welchen Wert der Barcode aufweist.

Die Auswahl der Barcode Typen für die Erkennung ist pro Template und Feld individuell möglich. Dadurch können mit einem Layout mehrere verschiedene Barcode Typen aus einem Dokument ausgelesen werden.

barcode-einstellungen-TN.png

Bedingungen

Bedingungen werden über Felder und über logische Verknüpfungen sowie über Text und Teilstring aufgebaut. Damit werden Teilung und Layout Erkennung gesteuert.

Um eine Bedingung zu erstellen muss der Knoten "Conditions" im Bedingungs-Feld ausgewählt sein. Ist er ausgewählt kann ein Bedingung oder eine Verknüpfung (UND, ODER) hinzugefügt werden. Bedingungen bzw. Verknüpfungen werden immer unter dem ausgewählten Knoten eingefügt.

Dokument Teilen

Mit dieser Funktion kann der Anfang eines neuen Dokuments innerhalb eines Gesamtdokuments erkannt werden und ein anderes Briefpapier hinterlegt werden. Es gibt drei verschiedene Kriterien nach denen das Dokument "geteilt" werden kann.

  1. Das Dokument alle X Seiten teilen
    Bei dieser Option wird fix definiert in welchen Intervallen das Dokument geteilt werden soll.
    Wird zum Beispiel "2" als Parameter angegeben, wird das Dokument nach jeder zweiten Seite geteilt.
  2. Teilen des Dokuments bei Änderung des Bereichsinhaltes
    Das Dokument wird jedes Mal geteilt, wenn sich der ausgelesene Inhalt des Bereichs ändert. Dafür muss ein Feld (Bereich) gewählt werden, dessen Inhalt bestimmt wann das Dokument geteilt wird. Es erscheint ein Warnsymbol neben der Option falls kein Feld ausgewählt ist.
  3. Teilen über Bedingung
    Teilt das Dokument über eine Bedingung. Bei der Bedingungsart muss das Kästchen "Teilen" angehakt sein. Ist dieses nicht angehakt oder keine Bedingung definiert, erscheint ein Warnsymbol neben der Option.

Zusätzlich können nach dem Teilen eines Dokuments, leere Seiten oder eine benutzerdefinierte Anzahl an Seiten nach der Trennseite entfernt werden.

bedingung-teilen-feld-TN.png

Bedingung konfigurieren

Eine Bedingung besteht aus folgenden Teilen:

  1. TYPE
    Beschreibt die Bedingungsart, also entweder Teilen (S), Erkennen (D) oder beides (DS).
  2. AREA
    Beinhaltet den Bereich der überprüft werden soll. Hier kann aus den angelegten Feldern (Bereichen) gewählt werden.
  3. TEXT
    Hier kann ein Text definiert werden, der mit dem ausgelesenen Feldinhalt (AREA) verglichen wird und wenn er übereinstimmt die Bedingung erfüllt. Es ist auch möglich hierfür eine Teilstringsuche zu verwenden.
  4. PAGES
    Legt fest wie viele Seiten des Dokuments für die Bedingung überprüft werden sollen.
  5. LAYOUT
    Definiert das Layout (inklusive dem zugehörigen Briefpapier) das verwendet werden soll, wenn die Bedingung erfüllt wird.

Bedingungen können mit UND und ODER verknüpft werden.
Der Button "Aufräumen" entfernt unvollständige Strukturen.

bedingung-konfiguration-TN.pngbedingung-und-oder-verknüpfung-TN.png

Einstellungen

Leere Seiten erkennen und entfernen

Beim Scan von Dokumenten kann es bei doppelseitigen Scans vorkommen, dass leere Seiten (oder teilweise bedruckte Rückseiten) im Dokument enthalten sind. Nicht immer verfügen Scanner über eine Funktion um diese automatisch beim Scanvorgang zu entfernen. Für die Weiterverarbeitung und Archivierung sind Leerseiten störend und sollten entfernt werden können. Mit dem MDX AddOn gibt es eine Funktion um leere Seiten automatisch zu erkennen und zu entfernen.

Als Kriterium für die Erkennung einer leeren Seite dient ein Schwellwert, der standardmäßig auf 95% gestellt ist. Wir empfehlen einen Wert zwischen 95 und 98%. Der Wert gibt den prozentuellen Anteil der "weißen Pixel" auf einer Seite an. Eine Seite wird als "Leer" identifiziert, sobald der Anteil der weißen Pixel größer/gleich dem eingestellten Wert (z.B.: 95%) ist.

Zusätzlich zum Schwellwert kann auch die Information über im Hintergrund vorhandenen Text als Kriterium herangezogen werden. Dafür muss die Option "Leere Seite aus PDF nicht entfernen falls diese Text enthält" aktiv sein. Eine Seite, auf der im Hintergrund Text vorhanden ist, der jedoch nicht "sichtbar" ist, wird dadurch nicht aus dem PDF Dokument entfernt.

template-einstellungen-TN.pngtemplate-einstellungen-filled-TN.png

Layouts

Zuerst muss ein Template erstellt werden, das die Felder und Feldtypen festlegt. Dann werden Layouts, die mit diesem Template verwendet werden, erstellt.
Z.B.: Die Feld- und Datenstruktur für Eingangsrechnungen unterschiedlicher Lieferanten ist immer gleich - das Aussehen der unterschiedlichen Rechnungen, die Position und Anordnung der Felder ist jedoch immer verschieden. Also muss ein Template für Eingangsrechnungen angelegt werden und dann pro Lieferant ein Layout.

Einem Template kann ein oder mehrere Layouts zugeordnet werden, die dieselben Felder verwenden. Als Layout wird ein Briefpapier ausgewählt, das diesem Layout fix zugewiesen wird. Sind mehrere verschiedene Layouts einem Template zugeordnet, kann über Feldinhalte und Bedingungen, ein Briefpapier automatisch einem Dokument zugeordnet werden.

Um die im Template definierten Felder positionieren zu können muss zuerst ein PDF als Prototyp geladen werden. Wichtig ist hierbei, dass die Datei Text als Text und nicht als Bild enthält, da nur Text extrahiert, jedoch keine OCR (Texterkennung) durchgeführt werden kann.

Ist ein PDF Prototyp gewählt, so können die Felder per Drag&Drop auf das Dokument gezogen werden. Der Inhalt, der von einem platzierten Feld ausgelesen wird, wird links unten angezeigt, wenn das Feld ausgwählt ist. Das ermöglicht sofortige Rückmeldung ob der Text richtig und vollständig ausgelesen wird.

layout-hinzufügen-TN.pnglayout-interface-TN.pnglayout-felder-platziert-TN.pnglayout-prototyp-auswahl-TN.png

Anker Felder (Suchfelder)

Anker Felder werden benötigt um Referenzstellen in einem Dokument zu finden und andere Felder absolut darauf zu beziehen. Es gibt Informationen, die sich weder immer wieder an der gleichen Stelle noch auf der gleichen Seite befinden. Ein typisches Beispiel ist der Endbetrag einer Rechnung - dieser kann sich auf der ersten, der letzten aber auch auf einer x-beliebigen Seite befinden. Zusätzlich kann je nach Anzahl der Rechnungspositionen der Endbetrag vertikal variieren. Eine fixe Definition würde hier nicht helfen. Eine weitere Herausforderung stellen gescannte Belege dar. Hier kann von Dokument zu Dokument jedes Feld horizontal und vertikal "wandern" - je nachdem wie das Dokument in den Scanner eingelegt und gescannt wurde, können sich Verschiebungen und Verzerrungen ergeben. Eine fixe Positionsdefinition würde eine hohe Fehlerrate verursachen. Um in diesen Fällen die Felder zuverlässig auslesen und verarbeiten zu können, wurden die Anker Felder implementiert. Diese Felder sind Fixpunkte auf welche sich andere Felder beziehen können, z.B.: "Gesamtsumme", "Rechnungsendbetrag", usw.

Pro Layout können ein oder mehrere Ankerfelder definiert werden auf welche sich andere Felder beziehen können. Die Suche nach den Ankerfeldern kann über Teilstrings oder fixe Texte erfolgen und es kann festgelegt werden ob alle oder nur bestimmte Seiten durchsucht werden sollen.

Es kann speziell bei der Teilstringsuche vorkommen, dass der Begriff auf der Seite nicht die erste, sondern eine weitere Fundstelle die gesuchte Position ist und es keine andere eindeutige Möglichkeit gibt, das Feld über einen Suchstring zu positionieren. Deswegen erfolgt die Ankerfeldsuche standardmäßig von der Feldposition der Vorlage aus. Der nächstgelegene passende String wird als Position für das Ankerfeld genommen.

Unschärfe

Bei der Option "Unschärfe" für Ankerfelder kann definiert werden, für wie viele Zeichen eine Abweichung vom angegebenen String noch akzeptiert wird. Die Option kann nicht in Kombination mit der Teilstringsuche verwendet werden.

Treffer

Ist die Option "Treffer" aktiviert und eine Nummer angegeben, so wird die Seite von oben nach unten und von links nach rechts nach dem Ankertext durchsucht. Die Zahl gibt an, der wievielte Treffer als Position für das Ankerfeld genommen wird. Damit kann also auch z.B. der zweite Treffer auf einer Seite als Ankerfeld Position gefunden werden.

Auto-Scale

Speziell bei gescannten Dokumenten kann es vorkommen, dass die Inhalte der Dokumente auf der Seite nicht nur in ihrer Positionierung horizontal bzw. vertikal variieren, sondern Dokumente können auch unterschiedliche Skalierungen und Größen aufweisen. Zum Beispiel falls ein gescannter Ausdruck mit unterschiedlichen Skalierungen erstellt wurde. Die relative Position und Größe der auszulesenden Felder zueinander ist prozentuell zwischen den Dokumenten zwar gleich, die absoluten Werte sind aber unterschiedlich. Das Layout für das Auslesen der Felder wird an Hand eines typischen Dokuments erstellt und berücksichtigte bisher nur die absoluten Abstände und Größen der Felder zueinander. Ein Dokument das also z.B. um 10% kleiner auf der A4 Seite erscheint, konnte so nicht verarbeitet werden, da die Felder im Vergleich zum erstellten Layout sowohl von der Position als auch von der Größe nicht passen. Dafür haben wir jetzt eine Auto-Scale Funktion implementiert, welche in der Lage ist solche unterschiedlichen Skalierungen in einem bestimmten Umfang automatisch auszugleichen.

Was ist zu beachten:

  • Das Layout sollte von der "größten" Ausprägung aus erstellt werden.
  • Es muss ein Ankerfeld verwendet werden, das ohne Teilstringsuche gefunden werden kann. Zum Beispiel über den String "Rechnung" nicht jedoch über "*Rechnung*".
  • Die Option "Auto-Scale" muss aktiviert sein.

Test Funktion

Für das MDX AddOn gibt es eine integrierte Test Funktion mit der das aktuelle Template entweder mit der geladenen oder mit einer frei wählbaren PDF Datei getestet werden kann. Dabei werden die Feldnamen und die extrahierten Textinhalte angezeigt. Der "Test" Button ermöglicht es zu überprüfen, ob das aktuelle Template erkannt und bei welchen Seiten die PDF Datei geteilt werden würde. Es wird auch der Name des über die D-Bedingung identifizierten Layouts angezeigt. Dadurch kann festgestellt werden ob ein Layout, sowie welches mit dem getesteten Dokument erkannt wird.

Bei der Testfunktion werden nicht nur die aus dem PDF extrahierten sondern auch die durch die Felddefinitionen aufbereiteten Feldinhalte, die von MDX für die Weiterverarbeitung verwendet werden, angezeigt.

test-funktion-TN.pngtest-funktion-auslesen-TN.pngtest-funktion-teilen-TN.png

Beispiele

Video - Inhalt auslesen und als Dateiname verwenden

Video - Briefpapier automatisch auswählen und neues Dokument erkennen

Briefpapier an Hand von extrahierten Informationen automatisch auswählen

  1. Im iPaper Konfigurationsfenster die Option "Briefpapier automatisch auswählen" anhanken.
    Ist bereits ein Briefpapier gewählt, so wird dieses durch PDFmdx übersteuert.
     
  2. Mit einem Klick auf den "Konfiguriere..." Button das Konfigurationsfenster für MDX öffnen.
     
  3. Neues Template erstellen
    Template wird als PMDX Datei im Briefpapier Ordner gespeichert.
     
  4. Gewünschte Anzahl an Feldern hinzufügen
    Den Feldern einen Namen und einen Typ (Text für die meisten Fälle ausreichend) zuweisen.
     
  5. Layout hinzufügen
    Jedes Briefpapier das in diesem Template verwendet werden soll, muss als Layout hinzugefügt werden.
     
  6. PDF Prototyp laden
    Eine PDF Datei als Muster/Vorlage laden, an Hand der die Positionen für die Text Extraktion bestimmt werden.
     
  7. Felder platzieren (muss für jedes Layout seperat durchgeführt werden)
    Felder per Drag&Drop auf den auszulesenden Text ziehen und die Größe des Feldes anpassen.
    Der ausgelesene Text wird links unten angezeigt.
     
  8. Um die Bedingung zu konfigurieren auf den Tab Template / Bedingungen wechseln
    Den Button "Conditions" anklicken und eine ODER Verknüpfung hinzufügen.
    "ODER" Button auf rechter Seite
     
  9. Die hinzugefügte ODER Verknüpfung auswählen und eine Bedingung hinzufügen
    "Bedingung" Button auf rechter Seite
     
  10. Als Bedingungsart "Erkennen" auswählen
    Für den Bereich ein Feld auswählen, dessen Inhalt entscheiden soll welches Briefpapier hinterlegt wird.
    Unter Layout das Briefpapier (Layout) wählen das, wenn diese Bedingung zutrifft, hinterlegt werden soll.
    Im Feld Text einen Text eingeben, der mit dem ausgelesenen Inhalt verglichen wird und bei einer Übereinstimmung die Bedingung erfüllt.
    Im Feld Seiten wird festgelegt, wie viele Seiten des Dokuments durchsucht werden sollen. Um alle Seiten des Dokuments zu durchsuchen "1-$" eingeben.
     
  11. Punkt 9 und 10 für jedes Layout durchführen und die Bedingungen dem Layout entsprechend anpassen.
     
  12. Ein PDF Dokument über die iPaper Drop Zone verarbeiten.

 

Copyright 2023 © May Computer GmbH - All rights reserved! office@xkey.at