FlexiLayout Languageことはじめ - なぜFlexiLayout Languageが必要なのか?

質問

なぜFlexiLayout Languageが必要ですか。

回答

準定型(半構造化)文書の文書定義において、FlexiLayout Studioはは非常に強力かつ柔軟なツールですが、GUIによる設定のみでは100%のチューニングパフォーマンスを出せない場合があります。

本記事では、どのような場合にFlexiLayout Language(FLL)が必要になるのか、いくつか例を挙げて説明いたします。

早速、以下の例を見ていきましょう。

mceclip0.png

この定義の方針は以下の通りとなります。

- 取得したい項目は、Total(請求金額合計)。

- Totalにたどり着く準備として、kwTotal(静的テキスト)、vSP(区切り)をそれぞれ取得。

- kwTotal, vSPからの相対位置を指定することにより、Totalの位置と特定。

まず、GUIのみでのアプローチを見てみましょう。

mceclip1.png

上図のように、GUIによる設定では、基準となる要素からの相対位置+(絶対値)オフセットによって設定を行いますが、実はこのままでは以下のような問題に遭遇してしまう事があります。

1. 事前認識結果が思わしくなく、vSPがが正しく取得できなかった場合、Totalの位置情報が正しく特定できない。

2. スキャンの設定がテンプレート画像と異なる(解像度や用紙サイズが異なる、等)場合、オフセットが意図していた幅よりずれてしまう。

これらの問題点を解決する手段として、FlexiLayout Language(FLL)の活用を検討いたします。

以下、その一例となります。

mceclip2.png

まず1. の問題については、以下の条件式によって回避可能です。

if vSP.IsFound then
    LeftOf: vSP.Left, (vSP.Left - kwTotal.Right)*9/100*dot;
else
    LeftOf: PageRect.Right, (PageRect.right - kwTotal.Right)*14/100*dot;

上記の方法により、vSPが見つからなかった場合でも、Totalの位置を正しく取得する事が可能となります(PageRectは画像ページ全体の情報、FLLでしか使用できない)。

また同様に(今回は行っていませんが)kwTotalが取得できなかった場合のケアも可能です。

次に2. についてですが、オフセットの指定を要素間の相対位置(例:-kwTotal.Height*30/100*dot)で設定する事により、問題が解決いたします。

以上、FlexiLayout Language(FLL)の有用性について、いくつかご紹介いたしました。

その他の用例等、関連記事については、こちらをご参照ください。

追加情報

高度な検索前関係: Advanced pre-search relations

ページの大体の場所(例: 上/下半分、右上、下部...など)を設定する - 高度な検索前関係: Advanced pre-search relations - FlexiLayout

ヘッダー・フッター(Header/Footer)の使い方。ページ数(例: 1/3, 2/3, 3/3 )のみで定義したい - 高度な検索後関係: Advanced Post search relations - FlexiLayout

他にご質問がございましたら、リクエストを送信してください

コメント

0件のコメント

サインインしてコメントを残してください。