- 画像上の field の配置に、何らかのパターンや規則性はありますか。
- データfield を探す際に、どの要素を手がかりにできますか。
- 要素はどの順序で検索すべきですか。(これは重要です。後続の各ステップでは、直前のステップで見つかった要素しか利用できないためです。)
- Header 要素は、文書の最初のページにのみマッチする必要があります。
- Footer 要素は、文書の最後のページにのみマッチする必要があります。このグループ内に必須のサブ要素を作成し、Footer 要素が他の文書ページにマッチしないようにしてください。
-
最初のページには、InvoiceNumber、InvoiceDate、DeliveryAddress で構成される field グループがあります。InvoiceNumber field の名前は常に各文書の先頭にありますが、InvoiceDate と DeliveryAddress は常に存在するとは限りません。
- InvoiceNumber field と InvoiceDate field は、対応する名前の右側または下側に配置されます。
- DeliveryAddress についても、検索領域を制限したうえで、対応する名前の右側または下側を探します。さらに、下方向の検索領域を制限するための要素も必要です。
- 一部の画像ではこれらの field に値がないため、次の条件を指定するとマッチング処理を高速化できます。field の名前が検出されていない場合は、その field の値を探さないようにします。
- この field グループは、文書の識別子として使用できます。これらの field は、InvoiceHeader という名前の複合 Header 要素の一部として記述されます。
- 文書の最後のページには、テーブルの下に TOTAL AMOUNT MUST、Carried over、Total CHF、TOTAL という単語があります。ただし、これらの単語は文書内の他の場所(たとえば、名前やテーブル本体)にも現れることがあります。これらの単語を見つけるには、追加の参照要素(たとえば、テーブルの列名)を使用する必要があります。これらの参照要素は、検索領域を制限するのに役立ちます。
- 最後のページを記述する要素は、InvoiceFooter という名前の複合 Footer 要素の一部になります。
- Footer 要素が文書の最後のページにのみマッチするようにするには、必須要素を含める必要があります。最後のページを識別する単語(項目 3 を参照)は各文書の最後のページに現れるため、それらを記述する要素を必須要素にしてください。
-
テーブル(InvoiceTable という名前にします)は最初のページで始まり、最後のページで終わります。さらに、テーブルの前には常に最初のページに列名があります。テーブルの終わり(最後のページ上)を識別するには、補助要素(たとえば、InvoiceFooter グループの必須要素)を使用します。
文書の全ページの集合は、マルチページキャンバスと呼ばれます。マルチページキャンバスは、文書のすべてのページを隙間なく上から下へ連結し、すべてのページの左境界が点 (0, 0) を通る同じ軸上に来るようにして形成されます。ページを連結する順序は、バッチ内のページ順によって決まります。したがって、指定できるのはテーブルの開始位置(最初のページ上のヘッダー)と終了位置(最後のページ上のフッター)だけです。プログラムは文書全体、つまりマルチページキャンバス全体でテーブルを検索します。
- Company field の会社名は、常に最初のページの上部 3 分の 1 の範囲で探します。
- Total Amount field の名前は、常に最後のページのテーブルの下にあります。field の値は、名前の右側または下側にあります。
