サンプル4。ステップ4:要素の検出順序を決める画像を分析
ここでは、以下を確立します:
- 画像のフィールドの整列にパターンまたは方法はあるか?
- データフィールドを探すのにどの要素に頼れるか?
- 要素を探す順序はどのようなものか?(それぞれに続くステップで前のステップの要素にしか頼れないため、これは重要です。)
複数ページの文書を扱う際に、まず、どのオブジェクトを文書の最初と最後のページの識別に使えるかを調べます。これらのオブジェクトは、特殊な複合ヘッダー要素とフッター要素で記述できます。
- ヘッダー要素は文書の最初のページとしか合致しません。
プロジェクトに他の種類の文書も含まれている場合、この要素は識別子としても使用されます(すなわちこの文書種類を識別する一意の特性)。
- フッター要素は文書の最後のページとしか合致しません。フッター要素が文書の他のページと合致しないように、このグループに必要なサブ要素を作成することをおすすめします。
画像を分析すると、以下に気づくでしょう:
- 最初のページでは、InvoiceNumber、InvoiceDate、 DeliveryAddressからなるフィールドのグループがある。InvoiceNumberフィールドの名前は常に各文書の始まりにあり、InvoiceDateおよびDeliveryAddressは常に存在しているわけではない。
- InvoiceNumberおよびInvoiceDateフィールドはその対応する名前の右または下に位置する。
- DeliveryAddressについては、検索領域が制限されているため、対応する名前の右または下になる。また、検索領域を下から制限する要素が必要です。
- これらのフィールドに値のない画像もあるため、以下の条件を指定して、合致を高速化できます。フィールド名が検出されていない場合はフィールドの値を探さないでください。
- このフィールドのグループを、文書の識別子として使用できます。これらのフィールドを、InvoiceHeaderと名付けられた複合ヘッダー要素の一部として記述します。
- 文書の最後のページには、表の下に単語TOTAL AMOUNT MUST、Carried over、Total CHF、TOTALがあります。ですが、これらの単語は、文書のどこでも発生する可能性があります(表の名前または本体などで)。これらの単語を見つけるには、追加的な参照要素を使う必要があります(表の列名など)。これらの参照要素は、検索領域を制限するのに役に立ちます。
- 文書の最後のページを記述する要素は、InvoiceFooterと名付けられた複合フッター要素の一部になります。
- フッター要素が文書の最後のページのみと合致するには、要素に必須要素が含まれていなければいけません。最後のページを識別する単語が(上記3参照)各文書の最後のページで発生するため、ページを記述する要素を必須要素とします。
- 表(名前をInvoiceTableと付けます)は最初のページで始まり、最後のページで終ります。また、表の先は常に、最初のページの列名があります。表の最後を識別するために(最後のページで)、補助要素を使用します(InvoiceFooterグループの必須要素など)。
注意:文書のすべてのページの多数性は多ページキャンバスと呼ばれます。多ページキャンバスは、文書のすべてのページが上から下へ、隙間なく、すべての左境界が同じ軸で(0, 0)点を通りながら、結合されて、作られます。ページの結合順序はバッチのページ順序で決まるため、表の始まり(最初のページの表のヘッダー)および表の終わり(最後のページの表のフッター)しか指定できません。文書全体すなわち多ページキャンバス全体で表が検索されます。 - Companyフィールドの企業名は常に最初のページ、ページの最初の1/3になります。
- Total Amountフィールドの名前は常に最後のページ、表の下になります。フィールドの値は、名前の右または下にあります。
12.04.2024 18:16:07