English (English)

Sample 3. Step 9: Describing the Invoice Date field with grDate, InvoiceDate, and InvoiceDateAsString elements

Analysis of the test images reveals that the Invoice Date field is located to the right of its name and on the same horizontal level as the name. We will use a Date element to look for the date. In case there are poor quality images where dates may not be recognized properly so that the search for the Date gives no results, create an additional element of type Character String. To specify the properties common to all these elements, we need to create a compound grDate element.

To create the grDate element:

  1. In the InvoiceHeader element, create an element of type Group and name it grDate.
  2. Click the Relations tab.
  3. Since all the elements used to detect the Invoice Date field may only occur to the right of the keywords of the kwInvoiceDate name and on the same level as the name, set the following search constraints:
    • Right of the element kwInvoiceDate, Offset = 0.
    • Above the element kwInvoiceDate, Offset = -10, Element boundary = Bottom.
    • Below the element kwInvoiceDate, Offset = -10, Element boundary = Top.

      Show me...

To create the InvoiceDate element:

  1. In the InvoiceHeader.grDate element, create an element of type Date and name it InvoiceDate.
  2. Click the Date tab.
  3. On the Date tab, specify all the possible date formats which may occur on the images. We assume that the date format is Day, month, year, the language is English, and there are no other constraints on the date.

    Show me...

  1. Click the Advanced tab.
  2. Since the Invoice Date field is optional on this document but whenever it occurs, it occurs with its name and is always located next to the name, set the following additional search constraint in the Advanced pre-search relations field: Look for the object on the image only if the kwInvoiceDate element has been detected; Look for the image object closest to the kwInvoiceDate element. In the FlexiLayout language:
    If InvoiceHeader.kwInvoiceDate.IsNull Then DontFind;
    Nearest: InvoiceHeader.kwInvoiceDate;
    Note.The Nearest constraint can also be specified via the program’s graphical user interface. Click the Relations tab, select Nearest, and in the To: drop-down list select Element and specify kwInvoiceDate as the Reference element.
  3. Try matching the FlexiLayout with the test images and make sure that the program successfully detects the element on all the images where there is an Invoice Date field.

Test and see that on some of the images the element has not been detected. Analysis of the pre-recognition results reveals that this has happened because of the noise in the area of the field. None of the standard properties of the Date element can be used to remedy the situation, so we have to create an alternative element with less stringent search constraints.

Note.For more information on finding dates on poor quality images, see the Tips and Tricks section of the Help file.

To create the InvoiceDateAsString element:

  1. In the InvoiceHeader.grDate element, create an element of type Character String and name it InvoiceDateAsString.
  2. Click the Character String tab.
  3. In the Character count field, specify this fuzzy interval: {-1, 8, 14, INF}, which is an estimate of the string length. We assume that the string may be 8 to 14 characters long. Any hypothesis outside this range will be penalized.
  4. Set the Max space length to 20, which means that the space may be 20 dots long.
  5. For the other properties, leave the default values.
  6. Click the Advanced tab.
  7. Since we want the program to look for this element only if the InvocieDate element has not been detected, set the following additional search constraint in the Advanced pre-search relations field: Look for the object only if the InvocieDate element has not been detected. In the FlexiLayout language:
    If Not InvoiceDate.IsNull Then DontFind;
  8. Since the Invoice Date field is optional on this document but whenever it occurs, it is always present with its name and located next to the name, set the following additional search constraint in the Advanced pre-search relations field: Look for the object on the image only if the element kwInvoiceDate has been detected; Look for the image object closest to the kwInvoiceDate element. In the FlexiLayout language:
    If InvoiceHeader.kwInvoiceDate.IsNull Then DontFind;
    Nearest: InvoiceHeader.kwInvoiceDate;
    Note.The Nearest constraint can also be specified via the program’s graphical user interface. Click the Relations tab, select Nearest, and in the To: drop-down list select Element and specify kwInvoiceDate as the Reference element.
  9. Try matching the FlexiLayout with the test images and make sure that the program successfully detects the element on all the images where there is an Invoice Date field and generates a null hypothesis for the InvoiceDate element.
  10. To describe the location of the InvoiceDate block, select the Source element option, then click and select the InvoiceHeader.grDate element as the source element.

Note.The region of a Group element is calculated by uniting the regions of all the detected subelements.

25.05.2023 7:55:03

Please leave your feedback about this article

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.