Japanese (日本語)

RestrictSearchAreaによる検索領域の制限

関数RestrictSearchAreaで、検索領域を矩形、矩形の配列、または区域として指定できます。

文書の異なるページで、求められるフィールドがその名前と異なる位置に置かれることが、よくあります。例えば、フィールドが名前の右に配置可能なページもあれば、名前の下に配置可能なページもあります。このような場合、検索領域を矩形の配列として指定することをおすすめします。このようなケースでRestrictSearchArea関数を使用することについての詳細は、要素の検索にNearestおよびFuzzyQualityを使用をご覧ください。

また、複数の要素で同じ検索制限を重複させるよりも、RestrictSearchArea関数を使用することをおすすめします。

ある種類の要素の使用が何らかの理由(低い画像の質やレイアウトの特殊性など)で不十分である時に、この機能を使用して日付フィールドまたは他のフィールドの検索領域を記述します。

いかにしてRestrictSearchArea関数を日付フィールドの検索に使えるのかを見ていきましょう。通常、少なくとも2種類の要素で日付フィールドを検索することをおすすめします:日付および文字列。でも画像の質が悪い場合、2つの要素では不十分な場合があります。日付フィールドの検索の組織化に関する詳細は、質の低い事前認識での日付の検出をご覧ください。

サンプルプロジェクトSearchOfDate.fspでこの関数を見ていきましょう(フォルダ%public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\RestrictSearchArea)。このプロジェクトは、実際には、Date\FCSプロジェクトフォルダの同じ名前のプロジェクトのコピーです。そのすべての要素の検索制限(DateFieldDateAsStringDateAsObjectCollection)は同じで、以下の図の通りです。

ですが、現在のプロジェクトでは、要素DateAsStringおよびDateAsObjectCollection関係タブの検索制限を重複させるのではなく、高度タブの高度な検索前関係フィールドで以下のコードを書いて、関数RestrictSearchAreaを使用します:

if (DateField.IsNull == FALSE) then Dontfind();
else RestrictSearchArea (DateField.Rect);

このコードの意味は、日付フィールドを文字列またはオブジェクト収集として検索することが、Date要素で検出できなかった場合にのみ、試みられるということです。また、要素DateFieldが検出されていない領域で、両方の要素が検索されます。DateField.Rect方法がDateField要素の仮説を囲む矩形を復元するために、これが起こります。仮説は見つかっていないので、囲む矩形は検索領域と一致します。従って、検出されていないDateField要素の検索領域を囲む矩形と一致しない、DateAsStringおよびDateAsObjectCollection要素の検索領域を指定します。

12.04.2024 18:16:07

Please leave your feedback about this article

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.