Date 要素で日付を検出できない場合
SearchOfDate.fsp sample プロジェクト
SearchOfDate.fsp (フォルダー %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\Date) で詳しく説明されています。
このプロジェクトには 5 つのページがあります。
目的は、Date 要素でサポートされていない日付フォーマットの画像も含め、すべての画像から日付を見つけることです。
Date 要素でサポートされている日付フォーマットを検索する
Relations セクションですべての要素の検索条件を設定するのは難しくないため、ここでは説明しません。詳細はプロジェクト内で直接確認できます。
Character String 要素を使用して別の日付フォーマットを検索する
データfield内の内容が構造化されていて、Date 要素でサポートされていないフォーマットを持つ場合は、アルファベットを指定する代わりに、正規表現でそのフォーマットを記述することをお勧めします。ただし、正規表現では field と記述された構造が 100% 一致していることが前提となるため、処理対象の画像の品質が高いことを確実に把握しておく必要があります (これに対してアルファベットでは、要素のプロパティで指定した一定割合のエラーを許容できます) 。したがって、認識精度を保証できない場合は、アルファベットの方がより柔軟な手段です。日付内の月が 事前認識 言語と同じ言語の単語で記載されることがわかっている場合は、日付フィールドを 3 つのセクション (日、月、年度) に分け、Static Text 型の要素を使用して月の field を個別に検索することをお勧めします。このような Static Text 要素では、月の考えられるすべての表記バリエーション (たとえば、その言語における月の正式名称と省略形) を記述する必要があります。その後、日と年度の fields は、Character String 要素を使って月の右側と左側から見つけることができます。

Object Collection 要素で部分的に認識された日付を抽出する

条件
if (DateAsString.IsNull == FALSE) then Dontfind() は、DateAsObjectCollection 要素の Advanced properties には追加できません。これは、例が示すように、検出された文字列に日付の一部しか含まれない場合があるためです。AlternativeDateGroup から Date ブロックの領域を定義する
SearchElements.DateGroup.AlternativeDateGroup は、プロジェクトツリーで Date ブロックのソース要素として指定されています。
DateAsString 要素と DateAsObjectCollection 要素のプロパティを記述するために Dontfind() メソッドが使用されているため、検出されたブロックの実際の領域は、Date 要素の 仮説 によって見つかった領域か、DateAsObjectCollection 要素と DateAsString 要素の領域を結合したものの、いずれかに一致します。
後者の場合、DateAsString 要素の領域は DateAsObjectCollection 要素の領域の一部であることが想定されるため、結果の領域は DateAsObjectCollection 要素の領域になります。
この場合は状況が比較的単純なので、Group 要素
SearchElements.DateGroup.AlternativeDateGroup をソース要素として指定できます。グループの領域は、検出されたサブ要素の領域を組み合わせたものになります。Dontfind() メソッドを使用すると、一部のサブ要素の検索を省略できます。そのため、Group 要素 SearchElements.DateGroup.AlternativeDateGroup の領域は、そのサブ要素の領域に一致します。ここで示した例では、Dontfind() メソッドは FlexiLayout matching の最適化に役立つだけでなく、ブロックの記述も簡潔にします。
文字列形式を定義せず、またこの例のように Object Collection 要素も使用しないで日付フィールドを探すために Character String 要素を使用した場合でも、日付フィールドの 検索領域 を明確に定義できれば、良好な結果が得られることがあります。ただし、検索領域 内に複数の文字列がある場合は、正規表現 またはより限定的なアルファベットを使って文字列形式を記述する必要があります。そうしないと、最終的な仮説が期待どおりにならない可能性があります。Character String 要素では、誤った仮説を除外するために、文字列内の文字数、単語末尾の数、スペースの長さを制限できます。Object Collection 要素を使用する場合、仮説には、画像上で 検索領域 内にあり、object サイズの制約を満たすすべての objects が含まれます。
