- field 名の右側かつ下側
- 検索領域の下側を制限するために White Gap 要素を使用
- Paragraph 要素を使用
grAddress グループ要素を作成する
- InvoiceHeader 要素内に、型 Group の要素を作成し、名前を grAddress にします。
- Relations タブをクリックし、グループ内の要素に対して次の検索制約を指定します。
- kwDeliveryAddress 要素の Above、Offset = -400。
- kwDeliveryAddress 要素の右 boundary の Left of、Offset = -800、Reference boundary = Right。
- kwDeliveryAddress 要素の左 boundary の Right of、Offset = -50、Reference boundary = Left。
- kwDeliveryAddress 要素の上 boundary の Below、Offset = -20、Reference boundary = Top。
wgAddressAbove White Gap 要素を作成する
-
InvoiceHeader.grAddress要素内に、型 White Gap の要素を作成し、名前を wgAddressAbove にします。 - White Gap タブをクリックします。
- Orientation で Horizontal を選択します。Min height を 55 に設定します。
- 段落内の白い余白を検索するため、Search among objects of type では Text のみを選択します。
-
Rubbish で、次の値を指定します。
- Lower threshold limit – 20。
- Upper threshold limit – 80。
- Threshold coefficient (%) – 10。
Lower threshold limit、Upper threshold limit、および Threshold coefficient (%) の各プロパティ値は、試行錯誤によってのみ決められます。まずはデフォルト値から始めてください。デフォルト値でうまくいかない場合は、すべてのテスト画像で白い余白が検出されるまで値を調整してください。 - 追加の検索制約は指定せず、その他のオプションはデフォルト値のままにします。
- Relations タブをクリックします。
-
白い余白は kwDeliveryAddress というキーワード名の下にのみ位置するため、次の検索制約を指定します。
- kwDeliveryAddress 要素の下、Offset = 20 Offset は、たとえば field 名とテキストの間など、画像上の別の領域でプログラムが白い余白を見つけないようにするために必要です。Advanced タブをクリックします。
-
Delivery Address field はすべての画像に存在するわけではありませんが、存在する場合は必ずその名前を伴うため、Advanced pre-search relations フィールドに次の追加条件を指定します。kwDeliveryAddress 要素が検出された場合にのみ、画像オブジェクトを検索します。FlexiLayout language では、この条件は次のように記述できます。
- wgAddressAbove 要素がすべての画像で検出されるかどうかを確認するため、FlexiLayout をマッチングします。
-
プログラムは指定した検索領域で複数の白い余白を見つけることがあり、常に正しいものを選べるとは限らないため、追加の検索制約を設定します。画像を確認すると、対象の白い余白は指定した検索領域内で最も上にある余白であることが分かります。したがって、Advanced pre-search relations フィールドに次の追加条件を指定します。最初のページの上境界に最も近い画像オブジェクトを検索します。FlexiLayout language では、この条件は次のように記述できます。
- InvoiceFooter 要素を一時的に除外し、FlexiLayout をマッチングします。
DeliveryAddress Paragraph element を作成する
-
InvoiceHeader.grAddress要素で、型 Paragraph の要素を作成し、DeliveryAddress という名前を付けます。 - Relations タブをクリックします。
-
DeliveryAddress は白い gap wgAddressAbove の上にしか配置できないため、次の検索制約を指定します。
- wgAddressAbove 要素の Above、Offset = 0。
-
DeliveryAddress 要素の検索領域は
InvoiceHeader.grAddressグループのレベルですでに指定されているため、ここで改めて指定する必要はありません。 - Advanced タブをクリックします。
-
DeliveryAddress field の名前も検索領域内にあるため、DeliveryAddress の値だけを取得できるよう、これを除外します。さらに、検索領域には区切り線や noise も含まれているため、それらも除外するのが適切です。このため、kwDeliveryAddress 要素の region をそのまま除外することはできません。代わりに、kwDeliveryAddress 要素の region を取得し、その region を拡大してすべての noise を含めたうえで、できあがった rectangle を除外するほうが適切です。そのためには、Advanced pre-search relations field に次の検索制約を指定します。
- InvoiceFooter 要素を一時的に除外して、FlexiLayout をマッチングします。
-
DeliveryAddress block の location は、検出された DeliveryAddress 要素の rectangular region として指定します。これは、表示しやすいように簡略化し、縦横に 5 ドット拡張したものです。これを行うには、Expression オプションを選択し、次の expression を入力します。
