メインコンテンツへスキップ
画像を解析すると、Unit Price 列名は “UnitPrice”、“Price”、“RATE” という検索テキストで表せることがわかります。一方、Unit という名前は “Unit” として現れます。プログラムが Unit Price 列名の中の “Unit” という単語を検出しないようにするため、まず一意のテキストを含む Unit Price を記述し、その後で追加のリレーションを使用して Unit を記述します。 Unit Price 列名のキーワードを検索する要素を作成するときは、Unit Price 列が常に Quantity 列の右側にあることを考慮してください。 kwUnitPrice 要素を作成するには:
  1. TableHeader 要素で、型が Static Text の要素を作成し、名前を kwUnitPrice にします。
  2. Static Text タブをクリックします。
  3. Search text field に、検索するテキスト UnitPrice|Price|RATE を指定します。
  4. 検索対象の名前が Designation という名前と同じ高さにあることを指定するには、Relations タブをクリックし、次の追加制約を指定します。詳細については、Step 7.2 を参照してください。
  5. Relations タブで、次の条件を指定します: 値 = 0 の X coordinate に最も近い要素を検索する。
ABBYY FlexiLayout Studio の kwUnitPrice Static Text 要素のプロパティにある Relations タブのスクリーンショット。値 0 の X coordinate に最も近い要素を検索する制約が表示されています。
  1. Advanced タブをクリックします。
  2. Unit Price 列名は kwQuantity 列名の右側にあるため、Advanced pre-search relations で次の追加条件を指定します: kwQuantity 要素が検出されている場合は、kwQuantity 要素の右側にある画像オブジェクトを検索します。この条件は FlexiLayout language では次のように記述できます:
    If Not (TableHeader.kwQuantity.IsNull) Then
    RightOf: TableHeader.kwQuantity, 0 * dot;
    
  3. 検索処理を最適化するため、追加条件を指定します: Designation という名前が検出されていない場合は、その名前を検索しません。詳細については、Step 7.2 を参照してください。
  4. Advanced post-search relations field で追加チェックを指定することで、生成される仮説の品質に影響を与えることができます。この場合は、次のチェックを指定できます: 要素が検出されている場合は、基準の幅と検出された要素の幅との差を計算し、それが指定されたファジー区間に属するかどうかを確認します。この条件は FlexiLayout language では次のように記述できます:
    If not IsNull then
    { FuzzyQuality: 400dt - width, {-50000,0,0, 50000}*dt;
    }
    //このチェックは、差が大きいほどペナルティ係数も大きくなることを意味します
    
  5. 要素が文書の First Page で検出されることを確認するため、FlexiLayout を Match します。