Zum Hauptinhalt springen
Wir haben beschlossen, nach dem Feld Delivery Address zu suchen:
  • rechts vom Feldnamen und darunter
  • unter Verwendung des Elements White Gap*, um den Suchbereich nach unten zu begrenzen*
  • unter Verwendung eines Elements vom Typ Paragraph*
Um die Eigenschaften festzulegen, die allen diesen Elementen gemeinsam sind, erstellen wir ein Gruppenelement. So erstellen Sie das Gruppenelement grAddress:
  1. Erstellen Sie im Element InvoiceHeader ein Element vom Typ Group und nennen Sie es grAddress.
  2. Klicken Sie auf die Registerkarte Relations und geben Sie die folgenden Suchbedingungen für die Elemente der Gruppe an:
    • Oberhalb des Elements kwDeliveryAddress, Offset = -400
    • Links von der rechten Begrenzung des Elements kwDeliveryAddress, Offset = -800, Reference boundary = Right.
    • Rechts von der linken Begrenzung des Elements kwDeliveryAddress, Offset = -50, Reference boundary = Left.
    • Unterhalb der oberen Begrenzung des Elements kwDeliveryAddress, Offset = -20, Reference boundary = Top.
Um den Suchbereich für das Element DeliveryAddress nach unten zu begrenzen, geben wir einen horizontalen White Gap an. So erstellen Sie das Element wgAddressAbove:
  1. Erstellen Sie im Element InvoiceHeader.grAddress ein Element vom Typ White Gap und nennen Sie es wgAddressAbove.
  2. Klicken Sie auf die Registerkarte White Gap.
  3. Wählen Sie unter Orientation die Option Horizontal aus. Setzen Sie Min height auf 55. Hinweis. Bei der Auswahl von Werten für die Höhe/Breite von White Gaps sollten Sie gegebenenfalls die Geometrie (d. h. Begrenzungen und Größen) der benachbarten Bildobjekte im Modus für pre-recognition results berücksichtigen.
  4. Wir suchen nach einem White Gap innerhalb eines Absatzes. Wählen Sie daher unter Search among objects of type nur Text aus.
  5. Geben Sie unter Rubbish die folgenden Werte an:
    • Lower threshold limit – 20;
    • Upper threshold limit – 80;
    • Threshold coefficient (%) – 10.
Die Werte für die Eigenschaften Lower threshold limit, Upper threshold limit und Threshold coefficient (%) können nur durch Versuch und Irrtum ermittelt werden. Wir empfehlen, mit den Standardwerten zu beginnen. Wenn die Standardwerte nicht funktionieren, ändern Sie sie so lange, bis der White Gap auf allen Testbildern erkannt wird.
  1. Geben Sie keine zusätzlichen Suchbedingungen an und behalten Sie für die anderen Optionen die Standardwerte bei.
  2. Klicken Sie auf die Registerkarte Relations.
  3. Da sich der White Gap nur unter den Schlüsselwörtern des Namens kwDeliveryAddress befinden kann, geben Sie die folgenden Suchbedingungen an:
    • Unterhalb des Elements kwDeliveryAddress, Offset = 20 Offset ist erforderlich, damit das Programm keine White Gaps in anderen Bereichen des Bildes findet, z. B. zwischen dem Feldnamen und dem Text. Klicken Sie auf die Registerkarte Advanced.
  4. Da das Feld Delivery Address nicht auf allen Bildern vorhanden ist, aber, wenn es vorkommt, immer zusammen mit seinem Namen erscheint, geben Sie die folgende zusätzliche Bedingung im Feld Advanced pre-search relations an:Nur dann nach dem Bildobjekt suchen, wenn das Element kwDeliveryAddress erkannt wurde. In der FlexiLayout language kann diese Bedingung wie folgt geschrieben werden: If InvoiceHeader.kwDeliveryAddress.IsNull Then DontFind;
  5. Gleichen Sie das FlexiLayout ab, um zu prüfen, ob das Element wgAddressAbove auf allen Bildern erkannt wird.
  6. Da das Programm im angegebenen Suchbereich manchmal mehr als einen White Gap findet und nicht immer den richtigen auswählen kann, müssen wir zusätzliche Suchbedingungen festlegen. Wenn Sie die Bilder untersuchen, werden Sie feststellen, dass der White Gap, für den wir uns interessieren, die oberste Lücke im angegebenen Suchbereich ist. Geben Sie daher im Feld Advanced pre-search relations die folgende zusätzliche Bedingung an:Nach einem Bildobjekt suchen, das der oberen Begrenzung der ersten Seite am nächsten liegt. In der FlexiLayout language kann diese Bedingung wie folgt geschrieben werden: NearestY: Page(1).RectGlobal.Top;
  7. Schließen Sie das Element InvoiceFooter vorübergehend aus und gleichen Sie das FlexiLayout ab.
So erstellen Sie ein DeliveryAddress-Element:
  1. Erstellen Sie im Element InvoiceHeader.grAddress ein Element vom Typ Paragraph und benennen Sie es als DeliveryAddress.
  2. Klicken Sie auf die Registerkarte Relations.
  3. Da sich DeliveryAddress nur oberhalb des White Gap wgAddressAbove befinden kann, geben Sie die folgende Suchbedingung an:
    • Oberhalb des Elements wgAddressAbove, Offset = 0.
  4. Da der Suchbereich für das Element DeliveryAddress bereits auf Ebene der Gruppe InvoiceHeader.grAddress angegeben wurde, müssen wir ihn hier nicht erneut angeben.
  5. Klicken Sie auf die Registerkarte Advanced.
  6. Da sich der Name des Felds DeliveryAddress ebenfalls innerhalb des Suchbereichs befindet, müssen wir ihn ausschließen, damit nur der Wert von DeliveryAddress erfasst wird. Außerdem gibt es im Suchbereich Trennlinien und Rauschen, die ebenfalls am besten ausgeschlossen werden. Aus den oben genannten Gründen können wir nicht einfach die Region des Elements kwDeliveryAddress ausschließen. Sinnvoller ist es, die Region des Elements kwDeliveryAddress zu übernehmen, sie so zu vergrößern, dass sie das gesamte Rauschen umfasst, und dann das resultierende Rechteck auszuschließen. Geben Sie dazu im Feld Advanced pre-search relations die folgenden Suchbedingungen an: If InvoiceHeader.kwDeliveryAddress.IsNull Then DontFind; Else // Zeichnet ein Rechteck um den Feldnamen (mit einem gewissen Offset für die Grenzen) { Let Left = InvoiceHeader.kwDeliveryAddress.Rect.Left - 100dt; Let Top = InvoiceHeader.kwDeliveryAddress.Rect.Top - 100dt; Let Right = InvoiceHeader.kwDeliveryAddress.Rect.Right + 20dt; Let Bottom = InvoiceHeader.kwDeliveryAddress.Rect.Bottom; // Schließt das resultierende Rechteck aus dem Suchbereich des Felds aus ExcludeRect (Left, Top, Right, Bottom); }
  7. Schließen Sie das Element InvoiceFooter vorübergehend aus und gleichen Sie das FlexiLayout ab.
  8. Geben Sie die Position des Blocks DeliveryAddress als rechteckige Region des erkannten Elements DeliveryAddress an, vereinfacht zur besseren visuellen Darstellung und vertikal sowie horizontal um 5 dots erweitert. Wählen Sie dazu die Option Expression aus und geben Sie den folgenden Ausdruck ein: Rect outputRect; OutputRegion = InvoiceHeader.grAddress.DeliveryAddress.SimplifiedRegion; IsNull = InvoiceHeader.grAddress.DeliveryAddress.IsNull; OutputRegion.Inflate (5dt, 5dt);