メインコンテンツへスキップ
TotalAmount field は、その名前の右側かつ下側にあるものとして検索します。 TotalAmount field を作成するには:”
  1. SumGroup 要素で、型が Character String の要素を作成し、名前を TotalAmount にします。
  2. Character String タブをクリックします。
  3. アルファベットを指定します。 ’,-.0123456789OSZosz
  4. アルファベット以外の文字の Percentage を 30% に設定します。
  5. Character count field に、文字列の長さを評価する次のファジー区間 {-1, 1, 20, INF} を指定します。想定される値はすべて 1 ~ 20 文字の範囲に収まるものとします。この範囲外の仮説にはペナルティが適用されます
  6. 追加の制約は設定せず、デフォルトのままにします。
  7. Search Constraints タブをクリックし、kwTotal 要素の仮説の Region を検索範囲から除外します。
  8. Advanced タブをクリックします。
  9. Advanced pre-search relations で追加の検索条件を指定します。If the kwTotal *name has been detected, specify the search area as an array of rectangles: one rectangle to the right of the field name and one rectangle below the field name with some offset. Otherwise, do not search for the image object.*この条件は FlexiLayout language では次のように記述できます。 If not kwTotal.IsNull Then // field 名 kwTotal が検出された場合 { WholeWordMOde: true; MaxGapInLine: 30dt; RectArray DataRegion; Let r1= Rect (kwTotal.Rect.Right, kwTotal.Rect.Top -20dt, kwTotal.Rect.Right + 1800dt, kwTotal.Rect.Bottom + 50dt); // 検索範囲を field 名の右側の矩形に制限します。 Let r2 = Rect (kwTotal.Rect.Left - 100dt, kwTotal.Rect.Bottom, kwTotal.Rect.Right + 100dt, kwTotal.Rect.Bottom + 200dt); // 検索範囲を field 名の下側の矩形に制限します。 DataRegion = RectArray (r1); DataRegion.Add (r2); RestrictSearchArea (DataRegion); } else Dontfind(); // それ以外の場合は、オブジェクトを検索しません。
  10. field 値の検索範囲は 2 つの矩形に制限されます。1 つは field 名の右側、もう 1 つは field 名の下側です。field 値が field 名の右側にある場合、多くの画像では field 名の下にも何らかのテキストがあります。ほとんどの画像では、この不要なテキストも TotalAmount field の検索範囲に含まれるため、プログラムはこのテキストに対する仮説を作成します。この仮説の Quality に影響を与える (つまり Quality を下げる) ため、Advanced post-search relations で追加チェックを指定します。*The lower the field value below the field name, the greater the penalty.*このチェックは FlexiLayout language では次のように記述できます。 If not IsNull then {FuzzyQuality: 400dt - width, {-50000,0,0, 50000}*dt; // 幅が 400 ドットの Region を持つ要素の仮説は最大の Quality になります if width < 50dt then Quality: 0; // 50 ドット未満の要素は考慮されません if Top > kwTotal.Rect.Top then { FuzzyQuality: Top - kwTotal.Rect.Top, {0,0,0, 20000}*dt; } } // このチェックは、差が大きいほどペナルティも大きくなることを意味します。 Note. オブジェクトのページ上の位置や、それらの間の距離を表すために 2D 座標系が使用されます。(0, 0) の点は画像の左上隅にあります。横軸は左から右、縦軸は上から下に向かいます。
  11. 画像に対して FlexiLayout を Match し、その要素が存在するすべての画像でプログラムが確実に要素を検出できることを確認します。
  12. TotalAmount block の位置を、TotalAmount 要素の矩形領域を縦横に 5 ドット拡張した矩形領域として指定します。これを行うには、Expression を選択し、次の式を指定します。 Rect outputRect; outputRect = SumGroup.TotalAmount.Rect; IsNull = SumGroup.TotalAmount.IsNull; OutputRegion = outputRect; OutputRegion.Inflate (5dt, 5dt);