Skip to main content
これですべての準備が整ったので、Invoice Table field を検索できます。Table 要素は、Step 13 で決めた戦略を使用してこれを検出します。
  • ヘッダーReference 列と Designation 列の名前にはキーワードを使用し、数量単価合計金額 の各列名には、前に記述した補助 要素 を使用します。
  • フッター – 前に記述したキーワード 要素 を使用して検出します。
  • 検索範囲Sales 列名で右側の検索範囲を制限します。

InvoiceTable 要素を作成する

1

テーブル要素を作成する

テーブル 型の要素を作成し、InvoiceTable と名付けます。
2

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

Columns タブ、Select の順にクリックし、この要素で検出するブロックとして前述の InvoiceTable ブロックを指定します。詳細については、Step 3 を参照してください。
3

Reference列と品名列を設定する

Reference 列を選択し、プロパティ… をクリックします。キーワード Reference でこの列名が検出されるため、デフォルト値はそのままにします。品名 列についても同様に操作します。
4

Quantity 列を構成する

Quantity 列を選択し、プロパティ… をクリックします。この列名を検索するには、先ほど検出した TableHeader.kwQuantity 要素を使用します。検出した要素を列名として使用 を選択し、参照ボタン をクリックして、TableHeader.kwQuantity 要素を選択します。
ABBYY FlexiLayout StudioのQuantity列の[プロパティ]ダイアログ。[検出した要素を列名として使用]が選択され、SearchElements.TableHeader.kwQuantityに設定されています。
5

UnitPrice 列を設定する

UnitPrice 列を選択し、プロパティ… をクリックします。前に検出された TableHeader.kwUnitPrice 要素を使用します。検出された要素を列名として使用 を選択し、参照ボタン をクリックして、TableHeader.kwUnitPrice 要素を選択します。
ABBYY FlexiLayout Studio の[UnitPrice 列のプロパティ]ダイアログ。[検出された要素を列名として使用]が選択され、SearchElements.TableHeader.kwUnitPrice が設定されています。
6

合計金額列を設定する

合計金額列を選択し、**プロパティ…**をクリックします。先に検出されたTableHeader.kwTotal要素を使用します。検出された要素を列名として使用を選択し、参照ボタンをクリックして、TableHeader.kwTotal要素を選択します。
7

列の順序に関するルールを追加する

Order タブをクリックします。対象の列の間に他の列 (たとえば Unit) が含まれる場合がありますが、対象の列は常に ReferenceDesignationQuantityUnit PriceTotal の順に表示されます。Rules for column order を選択し、Add… をクリックして、次の順序を指定します:Reference << Designation << Quantity << Unit Price << Total
ABBYY FlexiLayout Studio の SearchElements.InvoiceTable ダイアログの Properties にある Order タブのスクリーンショット。Rules for column order が選択され、Reference、Designation、Quantity、Unit Price、Total が順に並んだルールが表示されている。
8

ルール内の列を並べ替える

Edit Column Order Rule ダイアログで、列を Reference品名QuantityUnitPrice合計金額 の順に Selected columns リストへ移動します。
ABBYY FlexiLayout Studio の 2 つの Edit Column Order Rule ダイアログのスクリーンショット。使用可能な列が、Reference、Designation、Quantity、UnitPrice、Total の順に Selected columns リストへ移動されています。
9

header を構成する

Header タブをクリックします。ヘッダーは必要ですが、検索条件を設定する必要はないため、デフォルト値のままにします。
ABBYY FlexiLayout Studioの[Properties of SearchElements.InvoiceTable]ダイアログにある[Header]タブのスクリーンショット。[Look for header]と[Header is optional]が選択され、検索オプションはデフォルト値のままです。
10

フッターを設定する

フッター タブをクリックします。フッターを検出するには、先に検出した Footer.kwFooter 要素を使用します。Use found element as footer を選択し、参照ボタン をクリックして、Footer.kwFooter 要素を選択します。
ABBYY FlexiLayout Studio の SearchElements.InvoiceTable ダイアログの Properties にあるフッター タブのスクリーンショット。Use found element as footer が選択され、SearchElements.Footer.kwFooter に設定されています。
11

マスター列を設定する

Rows タブをクリックします。一部の列には複数行にわたるエントリが含まれる場合があるため、行を検出するためのマスター列を指定します。マスター列を使用して行を検出する を選択し、参照ボタン をクリックして、次の優先順位でマスター列を設定します。
  • 合計金額 – 常にデータが含まれ、各テーブルの行が1つのエントリに対応するため、主要列として使用します。
  • Quantity – FlexiLayout Studio が 合計金額 を検出できない場合に使用する第2列です。
  • Unit Price合計金額Quantity も検出できない場合に使用する第3列です。
ABBYY FlexiLayout Studio の Properties of SearchElements.InvoiceTable ダイアログの Rows タブ。[マスター列を使用して行を検出する]が選択され、Total、Quantity、UnitPrice がマスター列として表示されています。
12

テーブルの位置を制約する

Relations タブをクリックします。対象の列は Sales 列名の左側にわずかな間隔を空けて配置されているため、次の制約を設定します。
  • TableHeader.kwSales 要素の左側Offset = -40、Reference boundary = Left
オフセット値を選択する際は、事前認識で検出された参照オブジェクトと対象オブジェクトの幾何学的プロパティ (サイズと境界) を分析してください。それ以外の場合は、試行錯誤でこれらの値を決定してください。
13

Quantity列を照合して確認する

FlexiLayout をテスト画像に対してマッチングします。FlexiLayout Studio は、テーブル要素が存在するすべての画像でその要素を検出します。一部の画像では、Quantity 列に前の列の不要なアーティファクトも含まれています。有用なデータをノイズから分離するには、その列に含められるコンテンツの型を指定します。
14

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

InvoiceTable 要素の Properties ダイアログを開き、Columns タブをクリックします。Quantity 列の Properties ダイアログを開き、Check content type を選択して、Type of column content ドロップダウンリストから Number を選択します。
ABBYY FlexiLayout Studio の Quantity 列の Properties ダイアログ。Check content type オプションが選択され、Type of column content ドロップダウンリストで Number が選択されている画面。
15

列を確認する

FlexiLayout をテスト画像にマッチングし、Quantity 列に不要なデータが含まれていないことを確認します。
16

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

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