- Introducing ABBYY FlexiLayout Studio
- What's New In ABBYY FlexiLayout Studio 12
- Installing, running, and removing ABBYY FlexiLayout" Studio
- Program interface
- Projects
- Batches
- FlexiLayouts
- Multi-page FlexiLayout
- Pre-recognition
-
Elements
- Creating, copying, and deleting elements
- An overview of element properties
- Required and optional elements
- Element properties
- Search area
- Additional search constraints
- Units of measurement
- Fuzzy interval
- Specifying databases and text files in the FlexiLayout language
- Training elements
- Dependency browser
- Blocks
- Working with tables
-
Hypotheses and trees of hypotheses
- Hypotheses and optimizing the search
-
How hypotheses are generated and assessed
- Hypotheses for Static Text elements
- Hypotheses for Separator elements
- Hypotheses for White Gap elements
- Hypotheses for Barcode elements
- Hypotheses for Character String elements
- Hypotheses for Text Fragment elements
- Hypotheses for Date elements
- Hypotheses for Object Collection elements
- Hypotheses for Group elements
- Hypotheses for Phone elements
- Hypotheses for Currency elements
- Hypotheses for Table elements
- Hypotheses for Repeating Group elements
- Hypotheses for Labeled Field elements
- Hypotheses for Region elements
- Tree of hypotheses
- Debugging the FlexiLayout
- Classification
- Export
-
FlexiLayout language
- Basic concepts
-
Predefined types
- Void
- Logic
- String
- Int
- Distance
- XCoordinate
- YCoordinate
- Real
- Quality
- Area
- ImageObjectType
- DateFormats
- DayFormatVariants
- MonthFormatVariants
- YearFormatVariants
- XInterval
- YInterval
- DistInterval
- Rect
- FuzzyRect
- RectArray
- Region
- ImageObjectSet
- TextTypes
- BarcodeTypes
- BarcodeOrientations
- RecognitionMode
- Direction
- HorSearchAreaBound
- VertSearchAreaBound
- Hypothesis
- HypothesisInstances
- TableBlock
- TableBlockColumn
- TableBlockColumnArray
- TableHypothesis
- TableHypColumn
- TableColumnType
- CurrencyPositionTypes
- PageInterval
- PageArea
- PageEdge
- Page
- SearchAreaPageSetType
- IntArray
- StringArray
- IntFuzzyInterval
- DistFuzzyInterval
- AreaFuzzyInterval
- TextRotations
- Conversion of types
- Predefined constants
- Predefined variables
- Global functions
- Functions for working with named parameters
- Advanced pre-search functions
- Advanced post-search functions
- Specifying element properties
-
Hypotheses and their properties
- Object Collection hypothesis
- Character String hypothesis
- Static Text hypothesis
- Paragraph hypothesis
- Barcode hypothesis
- Date hypothesis
- Currency hypothesis
- Phone hypothesis
- Table hypothesis
- Table Column hypothesis
- Repeating Group hypothesis
- First Found hypothesis
- Labeled Field hypothesis
- Region hypothesis
- Hypotheses for all types of element
- Printing to debug
-
Tips and tricks
- Detecting dates in the case of low quality pre-recognition
- Setting multiple static text values. Search for static text with similar values
- Using Exclude to exclude elements
- Using Group elements to optimize FlexiLayout structure and search
- Searching for single-line Static Text elements
- Restricting the search area by means of RestrictSearchArea
- Searching for single-line fields of known or unknown format on documents of varying OCR quality
- Using Nearest and FuzzyQuality to search for elements
- Optimizing Group element search
- The "Optional" property of a Group element
- Searching for strings of digits
- Simplifying the FlexiLayout by using an auxiliary element and a null
- Describing text fields containing framed letters
-
Appendix
- Shortcut keys
- Properties of image objects detected during pre-recognition
- Supported input formats
- Barcodes supported in ABBYY FlexiLayout" Studio
- OCR languages supported in ABBYY FlexiLayout" Studio
- User dictionaries
- Alphabet used in regular expressions
- Extended regular expressions
-
Dialog boxes
- Options dialog box
- Fuzzy interval visual editor
-
Element Properties dialog box
- General tab
- Static Text tab
- Separator tab
- White Gap tab
- Barcode tab
- Character String tab
- Paragraph tab
- Date tab
- Object Collection tab
- Phone tab
- Currency tab
- Repeating Group tab
- Columns tab
- Order tab
- Header tab
- Footer tab
- Rows tab
- Label tab
- Field Position tab
- Field tab
- Search Constraints tab
- Relations tab
- Advanced tab
- Advanced for All Instances tab
- Errors tab
- End-User License Agreement
- Patents
- How to buy ABBYY FlexiCapture
- Third-party technologies
-
Tutorial
-
Sample 1
- Step 1: Creating a new project
- Step 2: Adding images to the batch
- Step 3: Setting the FlexiLayout properties
- Step 4: Pre-recognition
- Step 5: Viewing images and pre-recognition results
- Step 6: Analyzing pre-recognition results and selecting reference elements
- Step 7: Creating a form identifier
- Step 8: Testing the identifier element
- Step 9: Adjusting the properties of the identifier element
- Step 10: Describing the YOUR PLANET NAME field
- Step 11: Describing the YOUR PLANET NAME field with a PlanetNameHeader element
- Step 12: Describing the YOUR PLANET NAME field with a PlanetName element
- Step 13: Testing the YOUR PLANET NAME field
- Step 14: Describing the YOUR PLANET NAME field with a PlanetName block
- Step 15: Describing the NAME field
- Step 16: Describing the YOUR SPACESHIP NUMBER field
- Step 17: Describing the DATE YOU ARRIVED AT THE EARTH field
- Step 18: Describing the YOUR IDENTITY NUMBER ON THE PARTY field
- Step 19: Describing the ANY TEXT field
- Step 20: Describing the YOUR PHOTO IN FANCY DRESS field
- Step 21: Exporting the FlexiLayout
- Step 22: Opening the FlexiLayout in ABBYY FlexiCapture
-
Sample 2
- Step 1: Creating a new project
- Step 2: Adding images to the batch
- Step 3: Setting the FlexiLayout properties
- Step 4: Pre-recognition
- Step 5: Viewing images and pre-recognition results
- Step 6: Creating a document identifier
- Step 7: Testing the identifier element
- Step 8: Specifying the order in which the field Recipe # and the name for the recipe must be detected
- Step 9: Describing the Recipe # field
- Step 10: Creating a Recipe element
- Step 11: Creating a RecipeNumber element
- Step 12: Creating a RecipeNumber block
- Step 13: Describing the field which contains the name of the recipe
- Step 14: Describing the Ingredients field
- Step 15: Describing the field which contains the cooking instructions and the field which contains the cooking time
- Step 16: Creating a CookingTimeHeader element
- Step 17: Creating a CookingTime element
- Step 18: Creating a CookingTime block
- Step 19: Creating an InvertedHeader element
- Step 20: Describing the Cooking field
- Step 21: Creating a Serves element
- Step 22: Creating a Portions element
- Step 23: Describing the Cooking field
- Step 24: Creating a CookingDescription block
- Step 25: The FlexiLayout is ready
-
Sample 3
- Step 1: Preparatory settings
- Step 2: Visual analysis of the images and pre-recognition results
- Step 3: Blocks
- Step 4: Analyzing the images to decide in which order elements must be detected
- Step 5: Detecting the name of the Delivery Address field with a kwDeliveryAddress element
- Step 6: Detecting the name of the Invoice Number field with a kwInvoiceNumber element
- Step 7: Detecting the name of the Invoice Date field with a kwInvoiceDate element
- Step 8: Describing the Invoice Number field with an InvoiceNumber element
- Step 9: Describing the Invoice Date field: the grDate, InvoiceDate, and InvoiceDateAsString elements
- Step 10: Creating an grAddress element of type Group
- Step 11: Detecting the right boundary of the Delivery Address field with a wgAddressRight element
- Step 12: Describing the Delivery Address field with a DeliveryAddress element
- Step 13: Further analysis of the images
- Step 14: Detecting the auxiliary horizontal separator with an hsTableHeaderTop element
- Step 15: Analyzing the search constraints for column names with a TableHeader element of type Group
- Step 16: Detecting the name of the Quantity column with a kwQuantity element
- Step 17: Detecting the name of the Unit Price column with a kwUnitPrice element
- Step 18: Detecting the name of the Total column with a kwTotal element
- Step 19: Creating a InvertedHeader element
- Step 20: Describing the Footer group with a Footer element of type Group
- Step 21: Describing the footer of the table with a kwFooter element
- Step 22: Describing the name of the Total field with the kwTotal element
- Step 23: Detecting the name of the Country field with a kwOrigin element
- Step 24: Describing the Country field with a Country element
- Step 25: Detecting the TotalQuantity and TotalAmount fields with TotalQuantity and TotalAmount elements
- Step 26: Detecting the Table element with an InvoiceTable element
- Step 27: Exporting the FlexiLayout into ABBYY FlexiCapture
-
Sample 4
- Step 1: Preparatory settings
- Step 2: Viewing the images and pre-recognition results
- Step 3: Blocks
- Step 4: Analyzing the images to determine the order in which the elements should be detected
-
Step 5: Document header and InvoiceHeader group
- Step 5.1: Name of Invoice Number field, kwInvoiceNumber element
- Step 5.2: Name of Delivery Address field, kwDeliveryAddress element
- Step 5.3: Name of Invoice Date field, kwInvoiceDate element
- Step 5.4: Invoice Number field, InvoiceNumber element
- Step 5.5: Invoice Date field, grDate, InvoiceDate, and InvoiceDateAsString elements
- Step 5.6: Delivery Address field, grAddress, wgAddressAbove, and DeliveryAddress elements
- Step 6: Document Footer, InvoiceFooter group
-
Step 7: Table column names, TableHeader group
- Step 7.1: Name of Designation column, kwDesignation element
- Step 7.2: Name of ExtraQuantity column, ExtraQtyTag element
- Step 7.3: Name of Quantity column, kwQuantity element
- Step 7.4: Name of UnitPrice column, kwUnitPrice element
- Step 7.5: Name of Total column, kwTotal element
- Step 7.6: Name of Reference column, kwReference element
- Step 7.7: Name of Sales column, kwSales element
- Step 7.8: Name of Unit column, kwUnit element
- Step 8: Table element, InvoiceTable element
- Step 9: TotalAmount field, SumGroup group element
- Step 10: Company field, CompanyGroup group element, Company element
- Step 11: Exporting the FlexiLayout into FlexiCapture
-
Sample 1
- Technical support
- Glossary
Reference layout
You can create a reference layout for each image in the batch. The reference layout shows the desired location of blocks on the image. You can create a reference layout manually or by using the results of matching the FlexiLayout. You can edit a reference layout by adding or removing blocks, changing their sizes and locations, etc.
Reference layouts are used when debugging FlexiLayouts, as it allows you to compare the results of matching your FlexiLayout with the desired block locations on each of the images.
Reference layouts are created in Reference layout mode. Click on the toolbar to switch to the Reference Layout mode.
The Difference layout mode ( button on the toolbar) displays the difference between the reference layout and the results of matching the FlexiLayout. Areas which are present in the blocks of the reference layout but are absent in the blocks detected by matching the FlexiLayout (Missing Areas) are highlighted in red. The areas which are absent in the blocks of the reference layout but present in the blocks detected by matching the FlexiLayout (Excess Areas) are highlighted in green. The Batch window displays the percentages of Missing Areas and Excess Areas.
To create a reference layout manually:
- Open the image for which you wish to create a reference layout.
- Match the FlexiLayout with the image.
- Switch to Reference layout mode.
- Draw the required blocks on the image. (Use the Block-Drawing Tools.)
- Click
on the toolbar to save the reference layout.
To create a reference layout on the basis of a matched FlexiLayout::
- Open the image for which you wish to create a reference layout.
- Match the FlexiLayout with the image.
- Select Copy Matched Layout to Reference from the Batch menu or from the shortcut menu.
- Adjust the locations of the blocks if required.
- Click
on the toolbar to save the reference layout.
You can also use the Copy Matched Layout to Reference command from the shortcut menu of the batch to save as a reference layout the results of matching the FlexiLayout with selected batch pages.
Reference layout tools
The commands for creating and editing blocks can be found in View → Images → Tool → Select. The buttons corresponding to these commands can be found on the toolbar.
Button
To move a block border:
- Click the Select tool on the toolbar or select it in View → Images → Tool.
- Place the mouse pointer on the block border you wish to move.
- Hold down the left mouse button and drag the border in the required direction.
- Release the mouse button.
Note.If you place the mouse pointer in the corner of the block, dragging the mouse will move both the vertical and horizontal block borders.
To move a selected block:
- Click the Select tool on the toolbar or select it in View → Images → Tool.
- Place the mouse pointer on the desired block. The mouse pointer will change its shape, indicating that you can move the block.
- Hold down the left mouse button and drag the border in the required direction.
- Release the mouse button.
Sometimes a block may be too small to be moved, as its borders are very close to one another and pointing the mouse on any of them will activate the "change size" mode. Hold down the Ctrl key to move such blocks.

Button
To create a new block:
- Click the Create Block tool on the toolbar or select it in View → Images → Tool.
- Place the mouse pointer in the corner of the future block. Hold down the left mouse button and drag the corner diagonally in the required direction.
- Release the mouse button.
- In the Create Block dialog box, enter a name for the new block.

Button
To draw a block or an element:
- Select Training Mode from the Training menu to switch to the training mode.
- In the FlexiLayout window, select a block or a static element.
- Click the Draw Location tool on the toolbar or select it in View → Images → Tool.
- Place the mouse pointer in the corner of the future block. Hold down the left mouse button and drag the corner diagonally in the required direction.
- Release the mouse button.

Button
To delete a block:
- Click the Delete Region tool on the toolbar or select it in View → Images → Tool.
- Click the block you wish to delete.

Button
To add a rectangular area to a block:
- Click the Add Region Part tool on the toolbar or select it in View → Images → Tool.
- Place the mouse pointer inside the block to which you wish to add a rectangular area.
- Hold down the mouse button and drag the pointer diagonally in the required direction.
- Release the mouse button.
The rectangle will be added to the block.

Button
To cut out a rectangular area from a block:
- Click the Cut Region Part tool on the toolbar or select it in View → Images → Tool.
- Place the mouse pointer inside the block from which you wish to cut a rectangular area.
- Hold down the left mouse button and drag the pointer diagonally in the required direction.
- Release the mouse button.
The rectangle will be cut from the block.
Note.When you cut out top or bottom block areas, the program will also cut out the adjoining right-hand up to the border of the block. This is done because only continuous text blocks may be recognized by the OCR engine. This constraint does not apply to left- and right-hand areas.

Button
To add a vertical separator:
- Click the Add Vertical Separator tool on the toolbar or select it in View → Images → Tool.
- Rest the mouse pointer over the desired location in the Table block. The mouse pointer will change its appearance.
- Click the block.

Button
To add a horizontal separator:
- Click the Add Horizontal Separator tool on the toolbar or select it in View → Images → Tool.
- Rest the mouse pointer over the desired location in the Table block. The mouse pointer will change its appearance.
- Click the block.

Button
To delete a separator:
- Click the Delete Separator tool on the toolbar or select it in View → Images → Tool.
- Rest the mouse pointer over the desired location in the Table block. The mouse pointer will change its appearance.
- Click the block.

Block columns shortcut menu
To create a reference layout fro columns of a Table block:
- Select the Table block on the image.
- Use the
,
,
tools to divide the block into cells.
- Right-click the column and select the name of the column from the shortcut menu.
To delete a column from a Table block, right-click the column and select Delete Column from the shortcut menu.
4/13/2021 11:12:27 AM