Russian (Русский) - Change language

Пример 4. Шаг 5.1 Поиск заголовка поля Invoice Number, элемент kwInvoiceNumber

Анализ изображения показывает:

  • Заголовок поля Invoice Number присутствует на всех изображениях и отличает их от других типов документов. Поэтому сделаем заголовок поля Invoice Number обязательным, то есть идентификационным элементом для данного типа документов Подробнее см. Обязательные, необязательные и недопустимые элементы.
  • Заголовок на изображениях представлен фразами Invoice no., Credit note No, Invoice Number:, Invoice Number.
    Поэтому составим нашу поисковую строку из всех возможных вариантов, при этом запишем каждую фразу слитно, чтобы ограничения на количество ошибок относились ко всей фразе целиком, а не к отдельным словам.
  • Нас интересует поле только с первых страниц документов, причем только в первой части первой страницы (на первых страницах некоторых документов есть статический текст по содержанию похожий на наш заголовок, но располагается он ближе к концу страницы).

Чтобы создать элемент kwInvoiceNumber:

  1. В составе элемента InvoiceHeader создайте элемент kwInvoiceNumber (тип Static Text).
  2. Выберите пункт Required element на вкладке General (поскольку данный элемент мы решили сделать обязательным).
  3. Выберите вкладку Static Text.
  4. В поле Search text укажите значение искомого текста: InvoiceNo.|CreditNoteNo|InvoiceNumber:|InvoiceNumber
  5. Задайте значение свойства Max error percentage равным 20.
  6. Выберите вкладку Search Constraints и задайте область поиска прямоугольником в абсолютных координатах на первой странице:
    • отметьте опцию Absolute search area constraints,
    • в поле Pages из списка выберите Range,
    • в поле Range укажите 1,
    • в поле Region укажите прямоугольник [1, 1, 2475, 1878]
    • задав свойств области поиска нажмите кнопку Add.... Область появится в списке Search areas.

      Показать пример

  1. Выберите вкладку Advanced
  2. В поле Advanced pre-search relations задайте дополнительные параметры:
    WholeWordMode: true;// в качестве гипотез будут рассматриваться только целые текстовые объекты
    MaxGapInLine: 50dt;// максимально допустимое расстояние между соседними символами
  3. Задав дополнительную проверку в поле Advanced post-search relations мы можем повлиять на качество сформированных гипотез, например, в данном случае такую:если элемент найден, вычислить разницу между эталонной шириной и шириной региона найденного элемента и проверить ее на вхождение в нечеткий интервал.
    На языке описания FlexiLayout данное условие выглядит следующим образом:
    If not IsNull then
    { FuzzyQuality: 600dt - width, {-70000,0,0,70000}*dt;
    }
    //такая проверка означает, что чем больше разница, тем выше штрафующий коэффициент
    Замечание. Для описания положения объектов на странице и расстояний между ними используется двумерная система координат с горизонтальной и вертикальной осями. Точка отсчета (0, 0) координатных осей расположена в левом верхнем углу изображения. Положительное направление оси абсцисс - слева направо, оси ординат - сверху вниз.
    Протестируйте изображения, временно исключив элемент InvoiceFooter.

10.11.2020 12:08:08


Please leave your feedback about this article