従来型の固定レイアウト文書によく見られる field を検索するために、FlexiLayout を作成する必要が生じることがあります。たとえば、文字を小さな枠内に記入する field を記述する必要がある場合です。
典型的な例として、企業が各地域オフィスから文書を収集するケースがあります。文書は同じように見えることが想定されていても、地域オフィスごとにレイアウトにわずかな違いがある場合があり、その結果、単一の「ハード」な Document Definition では処理できないことがあります。このような場合は、少しずつ異なる複数の「ハード」な Document Definition を使うよりも、1 つの FlexiLayout を使用する方が適していることがあります。
White Gap 要素を使用して境界を検索する場合
文書上で検索対象となる data field が「枠付き文字」または「個別の枠付き文字」タイプである場合、このような field の境界をセパレーターに基づいて検索するのは非常に複雑になることがあり、特にそのような field の名前が利用できない場合や認識の信頼性が低い場合には、要素の記述が煩雑になりがちです。
さらに、block にはこれらの field だけでなく、枠全体も含まれていることが非常に重要です。セパレーターの線が細い場合、印刷がかすれていたり、スキャン時に消失したりすることがあります。そのような場合は、White Gap 要素を使用して境界を検索します。
このような field の境界は、block の Properties ダイアログの Expression field で、特別な FlexiLayout language を使用して記述します。
field の上境界は上側の white gap の下端、下境界は下側の white gap の上端、右境界は右側の white gap の左境界、左境界は左側の white gap の右境界として記述できます。
テスト画像とテスト済みの FlexiLayout を含む FlexiLayout Studio プロジェクトは、%public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks にあります。
4 つの White Gap 要素から field の境界を導き出す
ここでは、画像内の data field の位置を正確に記述するために必要な 4 つの gap (LeftGapName、RightGapName、TopGapName、BottomGapName) がすべて見つかっているものとします。
この場合、Expression field 内のコードは次のようになります。
LeftGapName、RightGapName、TopGapName、BottomGapName の代わりに、対応する White Gap 要素の名前を指定してください。必要に応じて、Inflate オプションを使用して field の幅と高さを広げることができます。
複数行の枠付き field 内の個々の行を検索する
文書上で検索対象となる data field が複数行の field で、「枠付き文字」または「個別の枠付き文字」タイプの marking を持ち、各行が gap で区切られていない場合は、White Gap 要素を使用して上、下、右、左の境界を検索する必要があります。
その後、各行の検索は Expression field で特別なアルゴリズムとして指定する必要があります。この例では、各行の高さは field 全体の高さを 2 で割ることで計算できます。