Skip to main content
要素のプロパティ ダイアログColumnsタブでは、現在のTable 要素に関連付けるテーブルブロックを選択できます。
ABBYY FlexiLayout Studio における Table 要素の プロパティ ダイアログの Columns タブのスクリーンショット。

テーブルブロックを選択する

Table 要素は、検出対象の テーブルブロック に対応している必要があります。テーブルブロック を選択するには、Select ボタンをクリックし、現在の Table 要素に対応する テーブルブロック を選択します。そのブロックのすべての列の一覧が List1 フィールドに表示されます。各列のプロパティを設定します。プログラムは、列を検索するときにこれらのプロパティを検索条件として使用します。 要素の プロパティ ダイアログColumns タブに表示される列の一覧は、このダイアログでは編集できません。一覧を編集するには、ブロックの プロパティ ダイアログ を開きます。 要素と対応するブロックがどのように関連しているかを理解するために、次の点を考えてみてください。テーブルブロック は FlexiLayout とデータ抽出アプリケーションの間のインターフェイスとして機能し、Table 要素はそのインターフェイスの実装です。Table 要素には、テーブルブロック を見つけるための指示が含まれています。どのインターフェイスに対しても、複数のプログラム実装を作成できます。同様に、1 つの テーブルブロック に対して複数の Table 要素を作成できますが、その逆はできません。 要素の Columns タブで テーブルブロック を選択すると、プログラムは既定で テーブルブロック 内の列の名前と順序を使用して、各列の検索条件と列の順序を設定します。詳細については、テーブル列の検索条件を設定する および テーブル列の順序 を参照してください。

テーブルの列を無効にする

FlexiLayout をテストする際に、FlexiLayout から列を完全に削除せずに、その列を無効にする必要が生じることがあります。列を無効にしても、FlexiLayout 内のその列に関する情報はすべて保持されますが、FlexiLayout のテスト時にはその列を無視するようプログラムに指示されます。列を無効にするには、List1 field でその列を選択し、Disable をクリックします。すると、列名の横にあるチェック マークが外れます。列を有効にするには、リストでその列名を選択し、Enable をクリックします。
列を無効にすると、Order タブ上のすべての順序リストでも自動的に無効になります。

テーブル列の検索条件を設定する

テーブル列の検索条件は、列のプロパティダイアログで設定します。 列のプロパティダイアログを開くには、List1フィールドで列を選択し、フィールドの横にある**プロパティ…**ボタンをクリックします。
ABBYY FlexiLayout Studio の[列のプロパティ]ダイアログのスクリーンショット。ここでテーブル列の検索条件を設定します。
テーブルヘッダー内にある列名は、列の検出において重要な役割を果たします。プログラムが列名を検出しやすくするために、ヘッダーに含まれるキーワードを使用できます。あるいは、別の要素を基準にして列名を検出することもできます。その場合、その要素の領域も列名の領域と見なされます。

キーワードを使用して列名を検出する

キーワードで列名を検出するには、Detect by keyword in name オプションを選択します。下のfieldに、テスト画像上の列名に含まれるキーワードまたは語句を入力します。各キーワードを入力したら Enter キーを押します。 列名の検索時に完全な単語だけを使用するには、Whole words only オプションを選択します。 幅の狭い列では、名前内の単語が次の行に折り返されることがよくあります。そのような列名を検出するには、Multi-line name オプションを選択します。 同じ列でも画像によって名前が異なることがあるため、キーワードのリストには実際に現れる可能性のあるすべての候補を含める必要があります。ただし、画像によってはその列に名前がまったくない場合や、列自体が存在しない場合もあります。このため、列名は常に任意です。つまり、FlexiLayout を画像とマッチングする際に、列名が見つかる必要はありません。キーワードが見つからない場合 (実際に存在しない場合、または画質が Optical Character Recognition (OCR) に不十分な場合) は、仮説にペナルティが適用されます。つまり、その品質は、未検出のキーワードに対するヌル仮説の品質で乗算されます。仮説に対するペナルティは、Missing keyword penalty field で設定します。既定値は 0.97 です。

別の要素の領域を使用して列名を検出する

すでに見つかっている要素を使って、列名を見つけることができます。これにより、キーワードに追加の検索条件を設定できます。また、このメソッドでは、Static Text だけでなく、Character StringInverted Text、または単なる領域を検索対象にすることもできます。 すでに見つかっている要素を使って列名を見つけるには、Use found element as column name オプションを選択し、検索ボタン をクリックしてから、Select Element ダイアログで、その領域が列名の領域としても使用される要素を選択します。
列名の検出に使用する要素は、FlexiLayout ツリーで対象の Table 要素より上に配置されている必要があります。複数ページにまたがるテーブルを記述する場合は、列名の検索に繰り返し要素を使用します。複数ページにまたがるテーブルの詳細については、複数ページにまたがるテーブルを検出するを参照してください。

列が正しく検出されているかどうかを確認する

列を検索する際、プログラムは列名に関する情報だけでなく、列の内容に関する情報も使用します。そのため、特定の列に特定の種類のデータが含まれていることがわかっている場合は、それを指定することで、プログラムがその列をより確実に検出できるようになります。FlexiLayout Studio で列内のデータ型を確認するには、内容タイプを確認オプションを選択し、列の内容タイプフィールドで、その列に含まれている可能性が高いデータ型を、使用可能なものの中から 1 つ指定します。
  • テキスト
  • 通貨
  • 日付
  • 正規表現
  • 数値
列内のデータ型が 列の内容タイプフィールドで指定したデータ型と一致しない場合、その仮説にはペナルティが適用されます。内容欠落ペナルティフィールドには、列の内容が指定したデータ型に一致しない場合に、仮説の品質に乗算される係数が設定されます。

正規表現のアルファベット

正規表現 型を選択した場合は、列内のデータの形式を表す正規表現のコードを入力します。次のテーブルに、正規表現で使用できる記号を示します。

検索領域の座標を指定する

列の左境界と右境界の検索領域の座標を指定できます。Absolute area constraints プロパティで、各検索領域の座標をそれぞれ Left boundary フィールドと Right boundary フィールドに入力します。