メインコンテンツへスキップ
画像を確認すると、次のことがわかります。
  • 一部のドキュメントでは、 請求日 field は field 名の右側にあり、別のドキュメントでは field 名の下にあります。そのため、検索領域を field 名の右側と下側の矩形に制限します。
  • 日付を検索するには Date 要素を使用します。さらに、次の条件を指定します。field 名が検出されない場合は、field データを検索しません。
  • 日付は認識精度が低くなることが少なくありません。これは、スキャン品質の問題や無効な日付フォーマットなどが原因である可能性があります。そのため、 Date 要素で日付が見つからなかった場合に備えて、追加の Character String 要素を指定します。
すべての要素に共通する設定を指定するため、型が Group の要素を作成します。 型が Group の grDate 要素を作成するには、次のようにします。
  1. InvoiceHeader 要素内に、型が Group の要素を作成し、名前を grDate にします。
  2. Advanced タブをクリックし、追加の検索制約を指定します。検索領域を、field 名の右側にある 1 つの矩形と、field 名の下側にオフセットを付けた矩形からなる矩形の配列に制限します。FlexiLayout language では、この制約は次のように記述できます。 RectArray DataRegion; Let r1= Rect (kwInvoiceDate.Rect.Right, kwInvoiceDate.Rect.Top -20dt, kwInvoiceDate.Rect.Right + 650dt, kwInvoiceDate.Rect.Bottom + 50dt); Let r2 = Rect (kwInvoiceDate.Rect.Left - 150dt, kwInvoiceDate.Rect.Bottom, kwInvoiceDate.Rect.Right + 100dt, kwInvoiceDate.Rect.Bottom + 100dt);
DataRegion = RectArray (r1); DataRegion.Add (r2); RestrictSearchArea (DataRegion); InvoiceDate 要素を作成するには、次のようにします。
  1. InvoiceHeader.grDate 要素内に、型が Date の要素を作成し、名前を InvoiceDate にします。
  2. Date タブをクリックします。
  3. InvoiceDate 要素で使用可能なすべての日付フォーマットを指定します。
  1. 一部の画像では、請求日 field の検索領域に、すでに検出されている kwInvoiceNumber 要素と InvoiceNumber 要素が含まれることがあります。プログラムがこれらの要素の値を 請求日 field の仮説として扱わないよう、これらの要素を検索領域から除外します。
    • Exclude regions of elements field の横にある Add… ボタンをクリックします。
    • 要素のリストから kwInvoiceNumber を選択します。
    • OK をクリックします。すると、Exclude regions of elements field に文字列 SearchElements.InvoiceHeader.kwInvoiceNumber が表示されます。
要素 SearchElements.InvoiceHeader.InvoiceNumber についても、上記の操作を繰り返します。
  1. Advanced タブをクリックします。
  2. 請求日 field は必須要素ではありません。ただし、ドキュメントに日付 (請求日 field) が含まれている場合、ドキュメント上には必ず対応する field 名 (前述の kwInvoiceDate 要素で記述) が存在します。したがって、Advanced pre-search relations で追加の検索条件を指定できます。画像オブジェクトを検索するのは、 kwInvoiceDate が検出されている場合のみですFlexiLayout language では、この条件は次のように記述できます。 If InvoiceHeader.kwInvoiceDate.IsNull Then DontFind();
  3. InvoiceFooter 要素を一時的に除外し、FlexiLayout を match します。
画質の低い画像では、認識結果が Date 要素の標準 parameters のいずれにも適合しないことがあります。そのため、より緩やかな条件で請求日 field を検索する代替要素を追加します。 InvoiceDateAsString 要素を作成するには、次のようにします。
  1. InvoiceHeader.grDate 要素で、型が Character String の要素を作成し、名前を InvoiceDateAsString にします。
  2. Character String タブをクリックします。
  3. アルファベットを指定します。 ,-./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
  4. アルファベット以外の文字の割合を 30% に設定します。
  5. Character count field で、文字列の長さに対するファジー区間 {-1, 8, 14, INF} を指定します。想定される値は 8 ~ 14 文字の範囲にあるためです。この区間外の仮説にはペナルティが適用されます。
  6. Max space length を 20 に設定します。これにより、text string 内のスペースの最大長は 20 ドットに制限されます。
  7. その他の要素のプロパティは既定のままにします。
  8. Advanced タブをクリックします。
  9. InvoiceDate が画像上で検出されない場合にのみ InvoiceDateAsString 要素を検索するため、Advanced pre-search relations field に次の条件を指定します。画像オブジェクトを検索するのは、 InvoiceDate 要素が検出されない場合のみです。FlexiLayout language では、この条件は次のように記述できます。 If Not InvoiceDate.IsNull Then DontFind;
  10. InvoiceDate に対しても、上記と同様の追加条件を指定します。*画像オブジェクトを検索するのは、*kwInvoiceDate *要素が検出された場合のみです。*kwInvoiceDate 要素に最も近い画像オブジェクトを検索します。FlexiLayout language では、この条件は次のように記述できます。 If InvoiceHeader.kwInvoiceDate.IsNull Then DontFind; Nearest: InvoiceHeader.kwInvoiceDate;
  11. InvoiceDate ブロックの位置を、検出された InvoiceDate または InvoiceDateAsString 要素の rectangular region を縦横に 5 ドット拡張した領域として指定します。これを行うには、Expression オプションを選択し、次の expression を入力します。 Rect outputRect; if not InvoiceHeader.grDate.InvoiceDate.IsNull then outputRect = InvoiceHeader.grDate.InvoiceDate.Rect; else { outputRect = InvoiceHeader.grDate.InvoiceDateAsString.Rect; IsNull = InvoiceHeader.grDate.InvoiceDateAsString.IsNull; } OutputRegion = outputRect; OutputRegion.Inflate (5dt, 5dt);