Skip to main content
必要な準備がすべて整ったので、テーブル 要素を作成して Invoice テーブル field を検索します。このテーブルには、次の 3 つの部分を定義します。
  • テーブルの ヘッダー – すでに検出されている補助要素を使って列名を指定します。
  • テーブルの フッター – 最終部分の開始を識別する InvoiceFooter グループの、すでに検出されている必須の Paragraph 要素を使用します。この要素は、テーブルの最下部に最も近い要素として定義済みです。
  • テーブルの 検索領域 – ほかの用途では不要な最後の列 Sales の名前を使って、右側の検索領域を制限します。

InvoiceTable 要素を作成する

1

テーブル要素を作成する

SearchElements ツリーで、テーブル要素を作成し、InvoiceTable と命名します。
2

テーブルブロックを選択します

Columns タブをクリックし、次に Select をクリックして、Step 3 で作成した InvoiceTable ブロックを検索対象として選択します。
3

列名を指定する

テーブル列の検索パラメーターを指定します。各列をリストで選択し、プロパティ… をクリックして 検出された要素を列名として使用 を選択します。次に、参照ボタン をクリックし、先ほど検出した要素を選択します。
4

列順序を設定する

Order タブをクリックします。検索対象の列の間に他の列 (例:ExtraQtyTag) が含まれる場合でも、列順序は常に固定 (DesignationUnit PriceTotal の順) であるため、Rules for column order を選択し、Add… をクリックして、列を次の順序で追加します:Designation << Unit Price << Total
ABBYY FlexiLayout Studio の InvoiceTable Table element properties の Order タブのスクリーンショット。Rules for column order が選択され、Designation、Unit Price、Total の各列が指定された順序で追加されています。
5

ヘッダーのデフォルト設定をそのまま使用する

Header タブをクリックします。テーブルヘッダーは必要ですが、追加の制約はないため、デフォルト値のままにします。
6

テーブルフッターを設定する

フッター タブをクリックします。テーブルの末尾部分には、先ほど検出した InvoiceFooter.Paragraph 要素を使用します。Use found element as footer オプションを選択し、参照ボタン をクリックして、InvoiceFooter.Paragraph 要素を選択します。
ABBYY FlexiLayout Studio の InvoiceTable テーブル要素のプロパティにあるフッター タブのスクリーンショット。Use found element as footer オプションが選択され、InvoiceFooter.Paragraph 要素がテーブルフッターとして指定されています。
7

行のマスター列を設定する

タブをクリックします。一部の列のセルには複数行のデータが含まれる場合があるため、行を区切るためのマスター列を指定し、マスター列を使用して行を検出するを選択します。まず、常にデータが含まれ、テーブルの各レコードに対して1行のデータがある合計金額列を指定します。この列が画像上で検出されない場合は、行を区切るための次の候補として単価列と数量列を指定します。参照ボタンボタンを使用して、これらの列を選択します。
ABBYY FlexiLayout Studio の InvoiceTable テーブル要素のプロパティにある[行]タブのスクリーンショット。[マスター列を使用して行を検出する]が選択され、合計金額、単価、数量の各列が行を区切るためのマスター列として指定されています。
8

右側のテーブルを限定する

リレーション タブをクリックします。対象のテーブル列は Sales 列名の左側にあるため、次の検索制約を追加します。
  • TableHeader.kwSales 要素の左側、オフセット = 0。
低品質の画像 (たとえば、テーブルの本文とフッターの間にノイズがある場合や、ヘッダーまたはフッターが欠けている場合) では、テーブルの上限と下限を指定できます。上限には kwDesignation 要素、下限には Paragraph 要素を使用します。リレーション タブで、次の検索制約を追加します。
  • kwDesignation 要素の上側境界より下、オフセット = -50、参照境界 = Top
  • Paragraph 要素より上、オフセット = -50、参照境界 = Bottom
9

Quantity 列を照合して確認する

テスト画像に対してFlexiLayoutをマッチングします。FlexiLayout Studioはすべての画像でテーブル要素を正しく検出しますが、一部の画像では、Quantity列に前の列の余分なテキストが含まれています。Quantity列の有効なデータを不要なデータと区別するため、この列のコンテンツタイプを指定します。
10

Quantity のコンテンツタイプを設定する

InvoiceTable テーブル要素のプロパティダイアログを開きます。タブをクリックし、Quantity列の**プロパティ…**ダイアログを開いて、コンテンツの型を確認オプションを選択します。列コンテンツの型で、Numberを選択します。
ABBYY FlexiLayout Studio の Quantity 列のプロパティを示すスクリーンショット。[コンテンツの型を確認]オプションが選択され、列コンテンツの型として Number が選択されています。
11

通貨のコンテンツタイプを設定します

FlexiLayoutを再度マッチングし、Quantity 列に必須項目として数字のみが含まれていることを確認します。同様に、UnitPrice 列と Total 列の Currency の内容を指定します。
12

ブロックのソース要素を設定する

InvoiceTable ブロックの位置を指定するには、Source element オプションを選択し、参照ボタン をクリックして、ソース要素に InvoiceTable を指定します。