Skip to main content
一部の文書では、請求書番号 field は field 名の右側にありますが、別の文書ではその下にあります (文書 1 と 2 では、field データは名前のすぐ下に配置されています) 。 InvoiceNumber 要素を作成するには、次のようにします。
  1. InvoiceHeader 要素内で、Character String 型の要素を作成し、InvoiceNumber という名前を付けます。
    要素名は、InvoiceNumber field に対応するブロック名と同じである必要はありません。ただし、FlexiLayout で作業する際は、同じ名前にしておくと便利です。
  2. Character String タブをクリックします。
  3. アルファベットを指定します。 -./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  4. アルファベットに含まれない文字の Percentage を 30% に設定します。
  5. Character count field で、文字列の長さに対してファジー区間 {-1, 3, 20, INF} を指定します。これは、想定される値が 3 ~ 20 文字の範囲に収まることを前提としています。この区間外の仮説にはペナルティが課されます。
  6. 一部の画像では、Invoice Number field の検索範囲に、すでに検出された kwInvoiceDate 要素が含まれています。この要素を検索範囲から除外して、プログラムが Invoice Number field の仮説にこのテキストを含めないようにします。
    • Search Constraints タブで、Exclude regions of elements field の横にある Add… ボタンをクリックします。
    • 要素の一覧から kwInvoiceDate を選択します。
    • OK をクリックします。文字列 SearchElements.InvoiceHeader.kwInvoiceDate が Exclude regions of elements field に表示されます。
ABBYY FlexiLayout Studio の InvoiceNumber Character String 要素のプロパティにある Search Constraints タブのスクリーンショット。Exclude regions of elements field に kwInvoiceDate 要素が SearchElements.InvoiceHeader.kwInvoiceDate として追加されています。
  1. Advanced タブをクリックします。
  2. Advanced pre-search relations で、追加条件を指定します。kwInvoiceNumber という名前が見つからない場合は InvoiceNumber フィールドを検索せず、見つかった場合は、検索領域を矩形の配列として指定します。1 つは名前の右側、もう 1 つは少しオフセットした名前の下側です。FlexiLayout language では、この条件を次のように記述できます。
  3. field の検索領域は、2 つの矩形に制限されます。1 つは field 名の右側、もう 1 つはその下側です。field データが field 名の右側にある場合、field の下には別のテキストが存在することがよくあります (テスト画像では、ほとんどの場合 Date フィールドの名前とデータです) 。この余分なテキストも 請求書番号 field の検索領域に含まれるため、プログラムはこのテキストに対する 仮説 を生成します。この 仮説 の Quality に影響を与えるには、Advanced post-search relations field で追加チェックを指定します。field 名の下にあるテキストほど、ペナルティは大きくなります。FlexiLayout language では、この条件を次のように記述できます。
  4. InvoiceFooter 要素を一時的に Exclude し、FlexiLayout をマッチングします。
  5. InvoiceNumber block の位置を、InvoiceNumber 要素の矩形領域を縦横に 5 ドット拡大した領域として指定します。これを行うには、Expression を選択し、次の式を入力します。