# ABBYY FlexiCapture: FlexiLayout Studio > FlexiLayout Studio: working with the application, FlexiLayout structure, classification and export, the FlexiLayout language, tutorials, and reference. > For the full ABBYY documentation index, see: https://docs.abbyy.com/llms.txt ## Introducing ABBYY FlexiLayout Studio - [Introducing ABBYY FlexiLayout Studio](https://docs.abbyy.com/flexi-capture/fls/introducing.md): Introductory topics for ABBYY FlexiLayout Studio: what the application does, capturing data from unstructured documents, and creating a FlexiLayout. - [About ABBYY FlexiLayout™ Studio](https://docs.abbyy.com/flexi-capture/fls/overview/about.md): ABBYY FlexiLayout Studio creates formalized descriptions (FlexiLayouts) of semi-structured documents so data capture applications can extract their fields. - [Data capture from unstructured documents](https://docs.abbyy.com/flexi-capture/fls/overview/flexi-form.md): Capture data from unstructured documents with FlexiLayouts: formalized descriptions that locate variable fields where fixed Document Definitions fail. - [Create a FlexiLayout](https://docs.abbyy.com/flexi-capture/fls/overview/how-to-create.md): Create a FlexiLayout step by step: build a project, add sample image batches, pre-recognize documents, define elements and blocks, and then compile and test. - [What's new in ABBYY FlexiLayout Studio 12](https://docs.abbyy.com/flexi-capture/fls/overview/new-features.md): Discover what's new in ABBYY FlexiLayout Studio: image and text classification, FlexiLayout protection, named parameters, document filtering, and backups. - [Installing, running, and removing ABBYY FlexiLayout™ Studio](https://docs.abbyy.com/flexi-capture/fls/install/install.md): Install, run, and remove ABBYY FlexiLayout Studio, which ships with ABBYY FlexiCapture 12 and requires the same protection key to start correctly. ## Working with FlexiLayout Studio - [ABBYY FlexiLayout™ Studio interface](https://docs.abbyy.com/flexi-capture/fls/dif/fc-main-window.md): Explore the ABBYY FlexiLayout Studio main window, where you create elements and blocks, adjust properties, and view FlexiLayout matching results. - [Batch window](https://docs.abbyy.com/flexi-capture/fls/dif/batch-window.md): Manage image batches in the Batch window of ABBYY FlexiLayout Studio: create and edit batches, move pages, filter columns, and review matching results. - [FlexiLayout window](https://docs.abbyy.com/flexi-capture/fls/dif/flexi-layout-window.md): Navigate the FlexiLayout window tree of Blocks and SearchElements branches, and move or copy elements and blocks by dragging in ABBYY FlexiLayout Studio. - [Classifier window](https://docs.abbyy.com/flexi-capture/fls/dif/classification-window.md): See how the Classifier window displays created classes and the classification tree, where each node is a stage you can move or copy in FlexiLayout Studio. - [Properties window](https://docs.abbyy.com/flexi-capture/fls/dif/properties-window.md): Edit element parameters in the Properties window of FlexiLayout Studio, from single-line text and drop-down lists to fuzzy intervals and recognition areas. - [Image window](https://docs.abbyy.com/flexi-capture/fls/dif/image-window.md): Inspect pages in the Image window of FlexiLayout Studio and switch between Matched, Reference, and Difference layout views when testing FlexiLayouts. - [Hypotheses window](https://docs.abbyy.com/flexi-capture/fls/dif/hypotheses-window.md): Review the Hypotheses window in FlexiLayout Studio, which shows the tree of element hypotheses generated when a FlexiLayout matches a sample image. - [Classifier Log window](https://docs.abbyy.com/flexi-capture/fls/dif/classifier-log-window.md): Track events and statistics in the Classifier Log window, including classification confidence results and FlexiLayout application logs you can export. - [Toolbars](https://docs.abbyy.com/flexi-capture/fls/interface/toolbars.md): Reference for FlexiLayout Studio toolbars: Standard, Extracted Objects, Block-Drawing Tools, Layout, and Image Tools buttons with their functions. - [Status bar](https://docs.abbyy.com/flexi-capture/fls/dif/status-bar.md): Status bar in ABBYY FlexiLayout Studio shows operation results, brief tips for interface elements, and the coordinates of the selected image object. - [Menu commands](https://docs.abbyy.com/flexi-capture/fls/interface/menu.md): Browse every menu command in ABBYY FlexiLayout Studio, covering the File, Edit, View, Batch, FlexiLayout, Training, Project, Tools, and Help menus. - [Shortcut menu commands](https://docs.abbyy.com/flexi-capture/fls/interface/local-menu.md): Look up shortcut menu commands in FlexiLayout Studio for the Batch, FlexiLayout, Training, Image, and Hypothesis windows plus blocks and elements. - [Projects](https://docs.abbyy.com/flexi-capture/fls/project/project.md): Understand projects in ABBYY FlexiLayout Studio: FlexiLayout (.fsp) and Classifier (.fcp) project types, their contents, and how batches are stored. - [FlexiLayout projects](https://docs.abbyy.com/flexi-capture/fls/project/flexi-layout-project.md): FlexiLayout projects store layout alternatives, blocks, elements, and image batches, letting you build, debug, and test FlexiLayouts in FlexiLayout Studio. - [Classifier projects](https://docs.abbyy.com/flexi-capture/fls/project/classificator-project.md): Classifier projects group document pages into classes: define the classifier structure, add identifier elements, and then build, debug, and test it. - [Create and manage projects](https://docs.abbyy.com/flexi-capture/fls/project/create-project.md): Create, open, and close projects in ABBYY FlexiLayout Studio, view project settings, and manage image enhancement profiles from the Properties dialog box. - [Manage image enhancement profiles](https://docs.abbyy.com/flexi-capture/fls/project/image-enhancement-profiles.md): Use built-in Photo and Scan image enhancement profiles in FlexiLayout Studio, or import custom profiles exported from ABBYY FlexiCapture stations. - [Protection features for FlexiLayouts and classifiers](https://docs.abbyy.com/flexi-capture/fls/project/protection.md): Protect FlexiLayouts and classifiers from unauthorized use by signing them with a developer's license. End users need a user license to apply them. - [Batches](https://docs.abbyy.com/flexi-capture/fls/batch/general-batch.md): Batches in ABBYY FlexiLayout Studio hold collections of test page images used to debug FlexiLayouts, with support for mixed formats and resolutions. - [Add, view, and delete test images](https://docs.abbyy.com/flexi-capture/fls/batch/image.md): Add test images to a FlexiLayout Studio batch, set image preprocessing and page import options, and then view or delete pages from the Batch pane. - [Work with images](https://docs.abbyy.com/flexi-capture/fls/batch/image-work.md): Rotate, flip, invert, despeckle, and rescale page images in ABBYY FlexiLayout Studio using the Image Tools toolbar or Edit menu commands. - [Save images](https://docs.abbyy.com/flexi-capture/fls/batch/send-image.md): Export selected batch pages to image files in FlexiLayout Studio and set saving options such as name prefix, suffix, format, and color type. - [Delete page data](https://docs.abbyy.com/flexi-capture/fls/batch/page-data-del.md): Remove pre-recognition objects, matched layouts, reference layouts, and training layouts from batch pages in the Select Data to Delete dialog box. - [FlexiLayouts](https://docs.abbyy.com/flexi-capture/fls/template/ftemplate.md): FlexiLayouts formally describe document structure with trees of elements and blocks so ABBYY FlexiCapture can locate data fields on document images. - [FlexiLayout properties](https://docs.abbyy.com/flexi-capture/fls/template/ftemplate-properties.md): View and edit FlexiLayout properties in FlexiLayout Studio: name, version, comment, pre-recognition, multi-page settings, constants, and protection. - [Layout alternatives](https://docs.abbyy.com/flexi-capture/fls/template/alternative-layout.md): Create, copy, import, reorder, and delete layout alternatives so one FlexiLayout can match documents whose element positions vary between subsets. - [Global constants](https://docs.abbyy.com/flexi-capture/fls/code/global-constant.md): Define global constants for a FlexiLayout on the Constants tab of the Properties dialog box and use them in FlexiLayout language search expressions. - [Auto-create a FlexiLayout](https://docs.abbyy.com/flexi-capture/fls/template/ftemplate-training.md): Train ABBYY FlexiLayout Studio on marked-up fields and static elements to auto-create FlexiLayouts, generate layout alternatives, and set training options. - [Multi-page FlexiLayout](https://docs.abbyy.com/flexi-capture/fls/template/multipage.md): Build FlexiLayouts for multi-page documents in ABBYY FlexiLayout Studio, setting page count limits and searching elements across the whole document. - [Use Header and Footer elements to detect the beginning and the end of a document](https://docs.abbyy.com/flexi-capture/fls/template/header-footer.md): Detect the first and last pages of multi-page documents with Header and Footer elements, which speed up FlexiLayout matching and improve detection. - [Match a multi-page FlexiLayout](https://docs.abbyy.com/flexi-capture/fls/template/multipage-matching.md): Match a multi-page FlexiLayout against selected pages: how FlexiLayout Studio pre-recognizes images and finds first and last pages of each document. - [Support for multi-page documents in ABBYY FlexiLayout Studio](https://docs.abbyy.com/flexi-capture/fls/template/multipage-possibility.md): Multi-page sheets merge document pages into one coordinate space. Learn how global and local coordinates work and which elements span multiple pages. - [Pre-recognition](https://docs.abbyy.com/flexi-capture/fls/batch/prerecognition.md): Pre-recognition detects text, separators, barcodes, and other basic objects on test images, the first stage of document analysis in FlexiLayout Studio. - [Pre-recognition parameters](https://docs.abbyy.com/flexi-capture/fls/batch/prerecognition-param.md): Configure pre-recognition parameters in the Pre-recognition Properties dialog box: recognition languages, text type, modes, barcodes, and search area. - [Run pre-recognition and view the results](https://docs.abbyy.com/flexi-capture/fls/batch/prerecognition-run.md): Run pre-recognition on batch images in FlexiLayout Studio and display recognized words, lines, separators, barcodes, and raw objects on the image. - [Analyze images](https://docs.abbyy.com/flexi-capture/fls/batch/pre-analyze.md): Analyze batch images before building a FlexiLayout: find reliable backbone objects, pick an identifier, and plan the order and grouping of elements. - [Debug the FlexiLayout](https://docs.abbyy.com/flexi-capture/fls/settings/general-settings.md): Debug a FlexiLayout in ABBYY FlexiLayout Studio by building it, matching it with test images, comparing against a reference layout, and disabling elements. - [Build a FlexiLayout](https://docs.abbyy.com/flexi-capture/fls/settings/compile.md): Build a FlexiLayout to check it for errors in element properties, block references, and FlexiLayout language code before applying or exporting it. - [Match the FlexiLayout with images](https://docs.abbyy.com/flexi-capture/fls/settings/analyze.md): Match a FlexiLayout with images to detect objects and draw blocks: search order down the FlexiLayout tree, optional elements, and Match menu commands. - [Reference layout](https://docs.abbyy.com/flexi-capture/fls/settings/etalon.md): Create and edit reference layouts in ABBYY FlexiLayout Studio to benchmark matching results, compare differences, and work with block-editing tools. - [Reference document assembly](https://docs.abbyy.com/flexi-capture/fls/settings/etalon-assembling.md): Set up a reference document assembly in FlexiLayout Studio to verify how pages are assembled into documents, using Header and Footer matching options. - [Named parameters](https://docs.abbyy.com/flexi-capture/fls/settings/named-param.md): Named parameters help debug FlexiLayouts: create them on the FlexiLayout properties tab, pass values down to batches and pages, and call them from scripts. - [Disable an element](https://docs.abbyy.com/flexi-capture/fls/template/exclude-element.md): Disable an element in the FlexiLayout tree to exclude it from matching without deleting it, handle dependent element errors, and re-enable it later. - [Test elements](https://docs.abbyy.com/flexi-capture/fls/settings/test-element.md): Test any FlexiLayout element to view every hypothesis generated for it on the current image, ranked by quality in the Hypotheses window. - [Back up FlexiLayouts](https://docs.abbyy.com/flexi-capture/fls/settings/backup.md): Create manual or automatic backups of FlexiLayouts, restore earlier versions, and compare changes in the Backup Versions dialog box of FlexiLayout Studio. ## FlexiLayout structure - [Elements](https://docs.abbyy.com/flexi-capture/fls/template/elements.md): Elements describe image objects a FlexiLayout must find (their type, geometry, location, and relations) and divide into simple and compound types. - [Create, copy, and delete elements](https://docs.abbyy.com/flexi-capture/fls/template/elements-simple.md): Insert new elements at any level of the FlexiLayout tree, draw them from recognized objects, and move, copy, or delete elements in FlexiLayout Studio. - [An overview of element properties](https://docs.abbyy.com/flexi-capture/fls/template/elements-properties.md): Element properties in the Properties dialog box cover general settings, geometry, search areas, relations, advanced constraints, and element fields. - [Required, optional, and prohibited elements](https://docs.abbyy.com/flexi-capture/fls/template/elements-optional.md): Use required, optional, and prohibited elements in FlexiLayout Studio to identify documents, continue matching, and discard incorrect hypotheses. - [Units of measurement](https://docs.abbyy.com/flexi-capture/fls/template/units.md): Units of measurement in FlexiLayout Studio: choose millimeters, centimeters, inches, dots, or points for object sizes and intervals in the Options dialog. - [Fuzzy interval](https://docs.abbyy.com/flexi-capture/fls/template/fuzzy-interval.md): Fuzzy intervals in ABBYY FlexiLayout Studio score hypothesis quality by length: set four boundary values, avoid rigid ranges, and use the visual editor. - [Databases and text files in the FlexiLayout language](https://docs.abbyy.com/flexi-capture/fls/language/bd-textfiles.md): Connect databases via ADO and reference text files in the FlexiLayout language to supply search strings, with SQL queries, encoding, and export rules. - [Train element parameters](https://docs.abbyy.com/flexi-capture/fls/template/elements-training.md): Train element parameters in ABBYY FlexiLayout Studio: prepare a training set, and then apply values from the Choose Trained Element Parameters dialog box. - [Dependency browser](https://docs.abbyy.com/flexi-capture/fls/template/reference-browser.md): Search FlexiLayout elements in the dependency browser (Reference browser tab) to view their dependencies and references and jump to the related properties. - [Element properties](https://docs.abbyy.com/flexi-capture/fls/element-properties-title.md): Property reference links for every FlexiLayout Studio element type, from Header, Footer, and Group to Static Text, Barcode, Table, and Repeating Group. - [Header and Footer](https://docs.abbyy.com/flexi-capture/fls/template/elements-header-footer.md): Header and Footer elements mark the beginning and end of a document; add, convert, and test these Group-type elements in ABBYY FlexiLayout Studio. - [Group elements](https://docs.abbyy.com/flexi-capture/fls/template/elements-compound.md): Group elements collect subelements into one unit, simplifying testing, limiting hypothesis growth, and sharing search constraints in a FlexiLayout. - [Labeled Field](https://docs.abbyy.com/flexi-capture/fls/template/labeled-field.md): Labeled Field is a compound element that finds named fields: configure label text, field position, and content types such as number, date, or phone. - [Line of Elements](https://docs.abbyy.com/flexi-capture/fls/template/line-of-elements.md): Line of Elements detects simple child elements arranged in one line, such as table headings. Configure accuracy, child types, and their search order. - [First Found](https://docs.abbyy.com/flexi-capture/fls/template/first-found.md): First Found group elements in ABBYY FlexiLayout Studio stop searching as soon as any subelement is detected, useful for fallback searches with looser conditions. - [Static Text](https://docs.abbyy.com/flexi-capture/fls/template/static-text.md): Static Text elements find pre-defined words or phrases in a FlexiLayout, with properties for error limits, case matching, and multi-line search. - [Character String](https://docs.abbyy.com/flexi-capture/fls/template/character-chain.md): Character String elements search for unspecified text using regular expressions or alphabets, with word count, character count, and space length controls. - [Paragraph](https://docs.abbyy.com/flexi-capture/fls/template/text-chain.md): Paragraph elements detect multi-line text blocks of unknown content, with FlexiLayout properties for line count, alignment, indents, and stamp removal. - [Date](https://docs.abbyy.com/flexi-capture/fls/template/date.md): Date elements locate dates in many formats on document images, with FlexiLayout settings for digit counts, separators, languages, and date intervals. - [Currency](https://docs.abbyy.com/flexi-capture/fls/template/currency.md): Currency elements find monetary amounts in a FlexiLayout, matching numbers with fractional parts, currency name prefixes or suffixes, and value limits. - [Phone](https://docs.abbyy.com/flexi-capture/fls/template/phone.md): Phone elements detect telephone numbers on document images, with properties for prefixes like Tel., digit separators, digit counts, and area code brackets. - [Named Entity](https://docs.abbyy.com/flexi-capture/fls/ner.md): Named Entity elements use NLP to extract people, company names, places, and addresses in a FlexiLayout; requires the separately installed NLP module. - [Separator](https://docs.abbyy.com/flexi-capture/fls/template/separator.md): Separator elements find vertical and horizontal separator lines, with length limits, quality penalties, and options for joining broken separators. - [White Gap](https://docs.abbyy.com/flexi-capture/fls/template/white-gap.md): White Gap element in FlexiLayout Studio finds empty rectangular areas using object histograms, with orientation, size, and threshold properties. - [Barcode](https://docs.abbyy.com/flexi-capture/fls/template/barcode.md): Barcode elements locate supported barcode types on document images in ABBYY FlexiLayout Studio, with settings for barcode type and reading orientation. - [Object Collection](https://docs.abbyy.com/flexi-capture/fls/template/object-collection.md): Object Collection elements search for sets of mixed-type objects in a FlexiLayout, such as pictures, checkmarks, punctuation marks, and inverted text. - [Region](https://docs.abbyy.com/flexi-capture/fls/template/area.md): Region elements define an image area in a FlexiLayout without restricting its contents, letting you compute regions regardless of the objects inside. - [Table](https://docs.abbyy.com/flexi-capture/fls/template/table.md): Table elements detect tables of different structures in a FlexiLayout, from financial document tables to any data arranged in tabular form. - [Repeating Group](https://docs.abbyy.com/flexi-capture/fls/template/repeatable-group.md): Repeating Group elements detect recurring sets of elements in a FlexiLayout, with document or page search modes and minimum and maximum repetition counts. - [Search area](https://docs.abbyy.com/flexi-capture/fls/template/search-constraints.md): Search areas tell a FlexiLayout where to look for objects, using absolute coordinates or relations to other elements, offsets, and the Nearest property. - [Search constraints](https://docs.abbyy.com/flexi-capture/fls/template/basic-constraints.md): Define an absolute search area on the Search Constraints tab in FlexiLayout Studio: page ranges, region coordinates, excluded elements, and vertical text. - [Relative search area](https://docs.abbyy.com/flexi-capture/fls/template/relations.md): Specify a relative search area on the Relations tab with Left of, Right of, Above, or Below relations to reference elements, boundaries, and offsets. - [Use instances of a Repeating Group as reference, excluded, or source elements](https://docs.abbyy.com/flexi-capture/fls/template/select-repeatable-group.md): Reference Repeating Group instances such as LastFound, AllInstances, Instance(#), and CurrentInstance when defining relations and excluded elements. - [Generate element relations](https://docs.abbyy.com/flexi-capture/fls/template/relations-generate.md): Train element relations from a reference layout in FlexiLayout Studio: pick reference elements, review generated relations, and save the ones you need. - [Correct relations offsets](https://docs.abbyy.com/flexi-capture/fls/template/offset-training.md): Correct relations offsets by training on a reference layout: review new and old offset values, preview each relation on the image, and apply changes. - [Additional search constraints](https://docs.abbyy.com/flexi-capture/fls/template/advanced-constraints.md): Write additional search constraints in the FlexiLayout language on the Advanced tab, using a code editor with full stop suggestions and element fields. - [Advanced pre-search relations](https://docs.abbyy.com/flexi-capture/fls/template/advanced-pre-search.md): Advanced pre-search relations run FlexiLayout language code before object search, restricting search areas, canceling searches, or selecting hypotheses. - [Advanced post-search relations](https://docs.abbyy.com/flexi-capture/fls/template/advanced-post-search.md): Advanced post-search relations penalize generated hypotheses in FlexiLayout code, checking element properties and adjusting quality with Quality(q). - [Additional search constraints for a Repeating Group element](https://docs.abbyy.com/flexi-capture/fls/template/advanced-repeatable-group.md): Set additional search constraints for Repeating Group elements in FlexiLayout Studio, including MinRepetitions limits and instance access via LastFound. - [Find and replace code strings on the Advanced tab](https://docs.abbyy.com/flexi-capture/fls/template/findin-advanced-code.md): Find and replace strings in FlexiLayout language code with the Find in Advanced Code dialog box, searching the current element and all its subelements. - [Blocks](https://docs.abbyy.com/flexi-capture/fls/template/blocks.md): FlexiLayout blocks map document fields for data capture: review Text, Barcode, Table, and group block types, their properties, and region expressions. - [Create, edit, and delete blocks](https://docs.abbyy.com/flexi-capture/fls/template/blocks-region.md): Create, edit, and delete blocks in the FlexiLayout tree: pick a layout alternative, bind a source element or region expression, and manage properties. - [Work with tables](https://docs.abbyy.com/flexi-capture/fls/tables/general-tables.md): Describe tables in ABBYY FlexiLayout Studio, from header, body, and footer structure to the workflow of creating Table blocks and Table elements. - [Table block](https://docs.abbyy.com/flexi-capture/fls/tables/table-block.md): Table blocks pass detected table coordinates and cell rectangles to ABBYY FlexiCapture: create the block, list columns, and pick a region with OutputTable. - [Table element](https://docs.abbyy.com/flexi-capture/fls/tables/table-element.md): Table elements detect tables of varying structure in FlexiLayout Studio: bind one to a Table block and configure columns, order, header, footer, and rows. - [Select a Table block and specify search constraints for columns](https://docs.abbyy.com/flexi-capture/fls/tables/column.md): Bind a Table element to its Table block and set column search constraints: keyword detection of column names, content type checks, and boundaries. - [Order of table columns](https://docs.abbyy.com/flexi-capture/fls/tables/order.md): Specify the order of table columns on the Order tab of a Table element: list fixed column orders or write rules when arrangement varies across images. - [Table header](https://docs.abbyy.com/flexi-capture/fls/tables/header.md): Header tab settings for a Table element define how FlexiLayout Studio finds the table header: optionality, null hypothesis quality, and search area. - [Table footer](https://docs.abbyy.com/flexi-capture/fls/tables/footer.md): Configure the Footer tab of a Table element in FlexiLayout Studio to locate the table's bottom boundary by keywords, an element, or absolute coordinates. - [Table rows](https://docs.abbyy.com/flexi-capture/fls/tables/rows.md): Divide a table into rows on the Rows tab: detect rows automatically from separators and gaps, use master columns, and list words that never start a row. - [Detect multi-page tables](https://docs.abbyy.com/flexi-capture/fls/tables/multipage-table.md): Detect multi-page tables that span several pages: control header and footer repetition, use Repeating Groups for column names, and handle repeating tables. - [Hypotheses and trees of hypotheses](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-general.md): Hypotheses in ABBYY FlexiLayout Studio are candidate matches for elements: see how quality is calculated, what null hypotheses are, and a worked example. - [Hypotheses and search optimization](https://docs.abbyy.com/flexi-capture/fls/hypotheses/formulate.md): Matching a FlexiLayout builds a branching tree of hypotheses. Learn how wide search and the Number of surviving hypotheses setting keep matching fast. - [Tree of hypotheses](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-tree.md): Understand the tree of hypotheses in ABBYY FlexiLayout Studio: how the best path is chosen, how to view it in the Hypotheses window, and what icons mean. - [How hypotheses are generated and assessed](https://docs.abbyy.com/flexi-capture/fls/hypotheses/quality.md): Generated hypotheses get a region drawn on the image. Learn how regions work and how the maximum number of hypotheses limits candidate variants. - [Hypotheses for Static Text elements](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-static-text.md): Static Text hypotheses tolerate OCR errors within set limits: configure Max number of errors and error percentage, and review every hypothesis property. - [Hypotheses for Separator elements](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-separator.md): Separator hypotheses are built from separator objects found during pre-recognition. Review their properties, from orientation to chain quality. - [Hypotheses for White Gap elements](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-white-gap.md): White Gap hypotheses come from histograms of object projections: understand threshold coefficients, upper and lower limits, and each hypothesis property. - [Hypotheses for Barcode elements](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-barcode.md): Barcode hypotheses are formulated from barcode objects found during pre-recognition. Review properties such as text, type, orientation, and chain quality. - [Hypotheses for Character String elements](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-letter-chain.md): Character String hypotheses split lines into alphabet fragments: see how embedded hypotheses work, how quality is scored, and the full property reference. - [Hypotheses for Paragraph elements](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-text-chain.md): Paragraph hypothesis properties at a glance: element name, surrounding rect, detected text, best-path flag, and the quality values assigned. - [Hypotheses for Date elements](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-date.md): Date hypotheses match dates written in the format set in the element's properties. The reference covers day, month, year, and the quality values assigned. - [Hypotheses for Object Collection elements](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-object-collection.md): Object Collection hypotheses gather every object in the search area that meets the element criteria. Check the property table from page to chain quality. - [Hypotheses for Group elements](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-compound.md): How ABBYY FlexiLayout Studio forms hypotheses for Group elements, with the full property table from chain quality to search area intersection caveats. - [Hypotheses for Phone elements](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-phone.md): Reference for Phone element hypotheses in FlexiLayout Studio: properties such as Number, Prefix, surrounding rect, pre-search and post-search quality. - [Hypotheses for Currency elements](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-currency.md): Property reference for Currency element hypotheses in ABBYY FlexiLayout Studio: detected value, currency name and rect, quality ratings, and best path. - [Hypotheses for Table elements](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-table.md): Table element hypotheses in ABBYY FlexiLayout Studio: detection via separators and white gaps, plus properties of table header, footer, and body parts. - [Hypotheses for Repeating Group elements](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-repeatable-group.md): Hypothesis properties for Repeating Group elements in FlexiLayout Studio, from surrounding rect and detected status to pre-search and chain quality. - [How hypotheses for Labeled Field elements are generated and assessed](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-labeled-field.md): Labeled Field hypotheses in ABBYY FlexiLayout Studio: generation and assessment, plus extra properties for Name, Gap, and Field subelements by field type. - [Hypotheses for Region elements](https://docs.abbyy.com/flexi-capture/fls/hypotheses/hyp-area.md): Region element hypotheses in FlexiLayout Studio ignore objects in the search area. Review surrounding rect, detected flag, and quality properties. ## Classification and export - [Classification](https://docs.abbyy.com/flexi-capture/fls/classification.md): Overview of classification in ABBYY FlexiCapture 12 with links to scenarios, classifier development, profiles, and precision-recall trade-offs. - [About document classification](https://docs.abbyy.com/flexi-capture/fls/classify-introduction.md): Document classification assigns images or texts to predefined classes; ABBYY FlexiCapture 12 offers trainable classifiers for document types and variants. - [Classification scenarios](https://docs.abbyy.com/flexi-capture/fls/classify-scenario.md): Classification scenarios in ABBYY FlexiCapture: sort documents, assemble pages into documents, detect documents to process, and route support requests. - [Classification profiles](https://docs.abbyy.com/flexi-capture/fls/classify-profiles.md): Choose between the Image, Text, and Combined classification profiles in ABBYY FlexiCapture, including the Combined profile's fast and thorough modes. - [Trade-off between precision and recall](https://docs.abbyy.com/flexi-capture/fls/classify-recall-prec.md): Balance precision and recall in ABBYY FlexiCapture classification: how each metric is calculated and when to choose High precision or High recall settings. - [Classification quality metrics](https://docs.abbyy.com/flexi-capture/fls/classify-quality-parameters.md): Assess classifier quality in ABBYY FlexiCapture with four metrics: precision, recall, F-measure, and the confidence score for class membership probability. - [Developing classifiers in FlexiLayout Studio](https://docs.abbyy.com/flexi-capture/fls/classify-fls.md): Advantages of developing classifiers in ABBYY FlexiLayout Studio: up to 10,000 documents per class, detailed statistics, rules, and batch anonymization. - [Creating classifier projects](https://docs.abbyy.com/flexi-capture/fls/classify-fls-new.md): Create a classifier project in FlexiLayout Studio: choose the Classifier Project Files type, document language, and auto or rule-based classification. - [Uploading training documents](https://docs.abbyy.com/flexi-capture/fls/classify-fls-load.md): Load training documents for a classifier batch in FlexiLayout Studio, with recommended page counts per class, batch size limits, and color scheme tips. - [Assigning reference classes](https://docs.abbyy.com/flexi-capture/fls/classify-fls-reference-classes.md): Assign reference classes to training pages manually, by source folder, or by classifying part of the batch first in FlexiLayout Studio. - [Training your classifier](https://docs.abbyy.com/flexi-capture/fls/classify-fls-train.md): Train a classifier in FlexiLayout Studio: open the Train Auto Classification Model window, set a profile, adjust precision-recall, and review results. - [Classifier statistics](https://docs.abbyy.com/flexi-capture/fls/classify-statistics.md): Evaluate classifier statistics in FlexiLayout Studio: true and false positives, precision, recall, F-measure, plus confusion matrix and per-class reports. - [Testing your classifier](https://docs.abbyy.com/flexi-capture/fls/classify-testing.md): Test a classifier with the Benchmark tool in FlexiLayout Studio: split a batch into training and test documents and analyze classification statistics. - [Tips for improving classification quality](https://docs.abbyy.com/flexi-capture/fls/classify-fls-better-work.md): Improve classification quality in FlexiLayout Studio: tune precision-recall, enlarge the training set, merge similar classes, add differentiation rules. - [Application of rules](https://docs.abbyy.com/flexi-capture/fls/classify-fls-rules.md): Apply classification rules in FlexiLayout Studio to check document processing results, set rule uniqueness, and improve auto-classification accuracy. - [Exporting your classifier](https://docs.abbyy.com/flexi-capture/fls/classify-export.md): Export a trained classifier from FlexiLayout Studio to ABBYY FlexiCapture, optionally including training images or redacting image data for anonymization. - [Export](https://docs.abbyy.com/flexi-capture/fls/export-title.md): Export guides for FlexiLayout Studio: save FlexiLayouts and Classifiers as files and identify and process FlexiLayouts in ABBYY FlexiCapture. - [Export FlexiLayouts](https://docs.abbyy.com/flexi-capture/fls/dif/export.md): Export a FlexiLayout from FlexiLayout Studio as an encrypted .afl file ready to add to an ABBYY FlexiCapture Document Definition or other capture apps. - [FlexiLayout identification and processing in ABBYY FlexiCapture](https://docs.abbyy.com/flexi-capture/fls/dif/form-reader-batch.md): Match flexible Document Definitions faster in ABBYY FlexiCapture by aligning pre-recognition parameters, using classifiers, and adding identifier elements. - [Export Classifiers](https://docs.abbyy.com/flexi-capture/fls/dif/classifier-export.md): Save a Classifier from FlexiLayout Studio as an encrypted .cfl file using the File menu Export command, and then attach it to an ABBYY FlexiCapture batch type. - [Saving classification statistics](https://docs.abbyy.com/flexi-capture/fls/classific-stat-export.md): Save classification statistics to a TXT or CSV file from the Classifier Results dialog box, with per-class results for trained or untrained classifiers. ## FlexiLayout language - [FlexiLayout language](https://docs.abbyy.com/flexi-capture/fls/code/general-code.md): Write FlexiLayout language code on the Advanced tab of the Properties dialog box to set element properties, relations, and hypothesis constraints. - [Type conversion](https://docs.abbyy.com/flexi-capture/fls/language/type-conversion.md): Implicit type conversion in the FlexiLayout language: safe conversions like Int to Real, plus coordinate-distance conversions with compiler warnings. - [Predefined constants](https://docs.abbyy.com/flexi-capture/fls/language/predefined-constants.md): Predefined constants in the FlexiLayout language: values for BarcodeTypes, DateFormats, ImageObjectType, Direction, TextTypes, and other built-in types. - [Predefined variables](https://docs.abbyy.com/flexi-capture/fls/language/predefined-variables.md): Predefined variables in the FlexiLayout language: IsNull, IsSuspicious, OutputRegion, OutputInstances, and OutputTable for Region Expression sections. - [Global functions](https://docs.abbyy.com/flexi-capture/fls/language/global-functions.md): Global functions in the FlexiLayout language: math and string helpers, database queries like ExecuteSQL, validation functions, and RecognizeText calls. - [Named parameter functions](https://docs.abbyy.com/flexi-capture/fls/language/named-param-functions.md): Pass named parameters between FlexiLayouts: SetOutputParameter, NamedParameterExists, and GetNamedParameter functions in ABBYY FlexiLayout Studio. - [Print function for debug output](https://docs.abbyy.com/flexi-capture/fls/language/print.md): Use the Print function in Advanced pre-search and post-search relations to output debugging information about hypotheses in the FlexiLayout language. - [Basic concepts](https://docs.abbyy.com/flexi-capture/fls/basic-concepts.md): Core FlexiLayout language concepts: lexical conventions, reserved keywords, function-call operators, statements, name scope, variables, and coordinates. - [Lexical conventions](https://docs.abbyy.com/flexi-capture/fls/language/conventions.md): Lexical conventions of the FlexiLayout language: identifier syntax, punctuation, operator precedence and associativity, assignment, constants, comments. - [Reserved keywords](https://docs.abbyy.com/flexi-capture/fls/language/r-keywords.md): Reserved keywords in the FlexiLayout language that cannot be used as names for blocks, elements, constants, or variables, listed alphabetically for reference. - [Function-call operators](https://docs.abbyy.com/flexi-capture/fls/language/function-call.md): Function-call operators in the FlexiLayout language: pass parameters with parentheses or the colon operator, with examples like MaxErrors and DontFind. - [Statements](https://docs.abbyy.com/flexi-capture/fls/language/statements.md): Statements in the FlexiLayout language: separating statements, compound blocks, conditional if-then-else branching, and for loops with break and continue. - [Name scope](https://docs.abbyy.com/flexi-capture/fls/language/name-scope.md): Name scope in the FlexiLayout language: where variables, constants, and element hypotheses are accessible across Advanced sections and the element tree. - [User defined properties](https://docs.abbyy.com/flexi-capture/fls/language/element-fields.md): User defined properties in the FlexiLayout language: declare typed variables in the External fields section to share hypothesis values between elements. - [Variables](https://docs.abbyy.com/flexi-capture/fls/language/variables.md): Declare and initialize variables in the FlexiLayout language by giving a type and name or with the Let keyword, which infers type from an expression. - [Coordinates and units of measurement](https://docs.abbyy.com/flexi-capture/fls/language/coordinates.md): Coordinate systems and units of measurement in the FlexiLayout language: global and local coordinates plus dot, inch, point, mm, and cm distance units. - [Predefined types](https://docs.abbyy.com/flexi-capture/fls/language/predefined-types.md): Reference for predefined types in the FlexiLayout language, from Int, String, and Distance to Rect, Region, FuzzyRect, and table hypothesis types. - [Advanced pre-search functions](https://docs.abbyy.com/flexi-capture/fls/advanced-pre.md): Overview of advanced pre-search functions in the FlexiLayout language, covering search control, search area specification, and Nearest functions. - [Search control functions](https://docs.abbyy.com/flexi-capture/fls/language/search-control.md): Control element searches in the FlexiLayout language with Optional, StopIfFound, DontFind, and MaxHypothesesCount functions for hypothesis generation. - [Nearest functions](https://docs.abbyy.com/flexi-capture/fls/language/nearest.md): Select the hypothesis closest to a point, element, or page edge with Nearest, NearestX, and NearestY functions in FlexiLayout pre-search relations. - [Specifying the search area](https://docs.abbyy.com/flexi-capture/fls/specifying-area.md): Define the search area for FlexiLayout elements: search constraints, area geometry, fuzzy rectangles, and the functions that limit or debug them. - [Search constraints](https://docs.abbyy.com/flexi-capture/fls/language/search-conditions.md): Set search constraints in the Advanced pre-search relations section using RestrictSearchArea, half-plane functions, boundary limits, and exclusions. - [Geometry of the search area](https://docs.abbyy.com/flexi-capture/fls/language/search-geometry.md): How search area geometry forms in FlexiLayouts: boundary coordinate ranges, applying LeftBound constraints, and one-page versus multi-page behavior. - [Fuzzy rectangle](https://docs.abbyy.com/flexi-capture/fls/language/fuzzy-rect.md): Understand the FuzzyRect type in the FlexiLayout language: how internal and external rectangles define search area boundaries, intersect, and unite. - [Functions which limit the search area](https://docs.abbyy.com/flexi-capture/fls/language/search-functions.md): Limit element search areas in FlexiLayout advanced pre-search relations with LeftOf, RightOf, Above, Below, Exclude, and RestrictSearchArea functions. - [Functions which create a fuzzy rectangle](https://docs.abbyy.com/flexi-capture/fls/language/fuzzy-functions.md): FlexiLayout language functions that return a FuzzyRect for RestrictSearchArea: AreaLeftOf, AreaAbove, ImageBelow, and other search area boundary helpers. - [Debug functions which return information about the search area](https://docs.abbyy.com/flexi-capture/fls/language/debug-functions.md): Print debugging information about element search areas in FlexiLayout Studio using the SearchArea, ExcludedRects, and PageSearchArea functions. - [Advanced post-search functions](https://docs.abbyy.com/flexi-capture/fls/advanced-post.md): Browse advanced post-search functions in the FlexiLayout language, including reference material on controlling the quality of element hypotheses. - [Hypothesis quality control functions](https://docs.abbyy.com/flexi-capture/fls/language/hyp-quality-control.md): Apply penalty coefficients to element hypotheses with the FuzzyQuality and Quality functions in FlexiLayout advanced post-search relations. - [Element properties](https://docs.abbyy.com/flexi-capture/fls/language/element-properties.md): Edit element properties on the Advanced tab of pre-search relations in FlexiLayout Studio, view generated code, and add if-then-else conditions. - [Object Collection](https://docs.abbyy.com/flexi-capture/fls/language/object-collection-language.md): Configure Object Collection element properties in the FlexiLayout language: object type, size limits, whole-word mode, raw text use, and outside parts. - [Character String](https://docs.abbyy.com/flexi-capture/fls/language/character-string.md): Set Character String element properties in the FlexiLayout language: alphabets, regular expressions, quality limits, word counts, and gap constraints. - [Static Text](https://docs.abbyy.com/flexi-capture/fls/language/static-text-language.md): Tune Static Text element search in the FlexiLayout language with error limits, case sensitivity, database or file text sources, and word penalties. - [Paragraph](https://docs.abbyy.com/flexi-capture/fls/language/text-fragment.md): Adjust Paragraph element properties in the FlexiLayout language: line counts, interline spacing, alignment, indents, and line width constraints. - [Separator](https://docs.abbyy.com/flexi-capture/fls/language/separator-language.md): Define Separator element properties in the FlexiLayout language: orientation, minimum and maximum length, gap limits, and length penalty settings. - [White Gap](https://docs.abbyy.com/flexi-capture/fls/language/white-gap-language.md): Control White Gap element search in the FlexiLayout language: gap orientation, upper and lower thresholds, minimum width, and object type filters. - [Barcode](https://docs.abbyy.com/flexi-capture/fls/language/barcode-language.md): Specify Barcode element properties in the FlexiLayout language: barcode type, reading orientation, and parts allowed outside the search area. - [Date](https://docs.abbyy.com/flexi-capture/fls/language/date-language.md): Detect dates with the Date element in the FlexiLayout language by setting formats, languages, separators, date ranges, and month representations. - [Currency](https://docs.abbyy.com/flexi-capture/fls/language/currency-language.md): Find monetary amounts with the Currency element in the FlexiLayout language: currency names, name position, value ranges, and fractional separators. - [Phone](https://docs.abbyy.com/flexi-capture/fls/language/phone-language.md): Phone element parameters in the FlexiLayout language: MinDigitsCount, Prefixes, Separators, AddCodeDelimiters, and quality penalties for number search. - [Table](https://docs.abbyy.com/flexi-capture/fls/language/table-language.md): Search tables with the Table element in the FlexiLayout language: column, header, footer, and body parameters, row detection, and multi-page tables. - [Repeating Group](https://docs.abbyy.com/flexi-capture/fls/language/repeatable-group-language.md): Restrict Repeating Group instances in the FlexiLayout language with MinRepetitions, MaxRepetitions, PaginalMode, and per-page repetition limits. - [First Found](https://docs.abbyy.com/flexi-capture/fls/language/first-found-language.md): First Found group elements in the FlexiLayout language have no specific methods; use the linked search area, search control, and debug references. - [Labeled Field](https://docs.abbyy.com/flexi-capture/fls/language/labeled-field-language.md): Work with Labeled Field elements in the FlexiLayout language: convert them to Group elements to access subelement methods and use common functions. - [Region](https://docs.abbyy.com/flexi-capture/fls/language/area-language.md): Region elements in the FlexiLayout language have no specific methods or properties; find links to search area, search control, and debug functions. - [Hypotheses and their properties](https://docs.abbyy.com/flexi-capture/fls/hypotheses-and-their-properties.md): Browse the FlexiLayout-language hypothesis methods for each element type: Object Collection, Character String, Static Text, Barcode, Date, Table, and more. - [Object Collection hypothesis](https://docs.abbyy.com/flexi-capture/fls/language/hyp-object-coll.md): Object Collection hypothesis reference in the FlexiLayout language: the NumberOfObjects method returns how many classified objects the region contains. - [Character String hypothesis](https://docs.abbyy.com/flexi-capture/fls/language/hyp-char-string.md): Use the Value method of a Character String hypothesis to get the text recognized within the hypothesis region in the FlexiLayout language. - [Static Text hypothesis](https://docs.abbyy.com/flexi-capture/fls/language/hyp-static-text-language.md): Use the Static Text hypothesis methods to read the recognized value, count lines and keywords, and get each text line's rectangle in the FlexiLayout language. - [Paragraph hypothesis](https://docs.abbyy.com/flexi-capture/fls/language/hyp-text-frag.md): Read recognized text from a Paragraph hypothesis with the Value method, part of the FlexiLayout language reference in ABBYY FlexiCapture. - [Barcode hypothesis](https://docs.abbyy.com/flexi-capture/fls/language/hyp-barcode-language.md): Use the Value method of a Barcode hypothesis to get the value of the recognized barcode within the hypothesis region in the FlexiLayout language. - [Date hypothesis](https://docs.abbyy.com/flexi-capture/fls/language/hyp-date-language.md): Use the Day, Month, Year, and Value methods of a Date hypothesis to read the day, month, year, and recognized text in the FlexiLayout language. - [Currency hypothesis](https://docs.abbyy.com/flexi-capture/fls/language/hyp-currency-language.md): Use the Currency hypothesis methods in the FlexiLayout language to get a recognized currency value, its name, and the integer and fractional part rectangles. - [Phone hypothesis](https://docs.abbyy.com/flexi-capture/fls/language/hyp-phone-language.md): Use the Phone hypothesis methods to read a recognized phone number, its prefix, and the bounding rectangles in the FlexiLayout language. - [Table hypothesis](https://docs.abbyy.com/flexi-capture/fls/language/hyp-table-column.md): Access detected table columns from a Table hypothesis in the FlexiLayout language: column width, name, left and right boundaries, separator checks. - [Repeating Group hypothesis](https://docs.abbyy.com/flexi-capture/fls/language/hyp-repeatable.md): Repeating Group hypothesis methods in the FlexiLayout language: CurrentInstance, LastFound, AllInstances, and InstancesCount for detected group instances. - [First Found hypothesis](https://docs.abbyy.com/flexi-capture/fls/language/hyp-first-found.md): First Found hypothesis behavior in the FlexiLayout language: the hypothesis matches the first detected subelement, so its methods depend on that element. - [Labeled Field hypothesis](https://docs.abbyy.com/flexi-capture/fls/language/hyp-labeled-field-language.md): Labeled Field hypothesis properties in the FlexiLayout language, including Field subelement values for currency, date, phone, and regular expression types. - [Region hypothesis](https://docs.abbyy.com/flexi-capture/fls/language/hyp-area-language.md): A Region element hypothesis has no specific methods in the FlexiLayout language and relies on the common methods and properties shared by all element types. - [Hypotheses for all types of elements](https://docs.abbyy.com/flexi-capture/fls/language/hyp-all.md): Common hypothesis properties for all FlexiLayout elements: IsNull, Region, FuzzyRect, boundaries, and page methods, with a worked null-hypothesis example. ## Tutorial - [Tutorial](https://docs.abbyy.com/flexi-capture/fls/tutorial/tutorial-all.md): Overview of the FlexiLayout Studio tutorial: three samples that build FlexiLayouts for a Halloween registration form, a recipe document, and an invoice. - [Sample 1. Introduction](https://docs.abbyy.com/flexi-capture/fls/tutorial/tutorial-general.md): Introduction to FlexiLayout Studio Sample 1: build a FlexiLayout for a Halloween registration form that locates name, date, barcode, and photo fields. - [Sample 1. Step 1: Create a new project](https://docs.abbyy.com/flexi-capture/fls/tutorial/step1.md): Create a new FlexiLayout Studio project for the Sample 1 Halloween form tutorial, naming it Sample1 and reviewing the files and folders it generates. - [Sample 1. Step 2: Add images to the batch](https://docs.abbyy.com/flexi-capture/fls/tutorial/step2.md): Add test images to the batch in FlexiLayout Studio Sample 1, set One document per file for reference assembly, and view pages in the Batch window. - [Sample 1. Step 3: Set the FlexiLayout properties](https://docs.abbyy.com/flexi-capture/fls/tutorial/step3.md): Rename the FlexiLayout and set its properties in Sample 1: pre-recognition language, text type, Fast mode, and the minimum and maximum page counts. - [Sample 1. Step 4: Pre-recognition](https://docs.abbyy.com/flexi-capture/fls/tutorial/step4.md): Run pre-recognition on the batch images in FlexiLayout Studio Sample 1 to find objects that can serve as signposts when searching for field blocks. - [Sample 1. Step 5: View images and pre-recognition results](https://docs.abbyy.com/flexi-capture/fls/tutorial/step5.md): View images and pre-recognition results in Sample 1 using the Show Image Objects command or the Extracted Objects toolbar in FlexiLayout Studio. - [Sample 1. Step 6: Analyze pre-recognition results and select reference elements](https://docs.abbyy.com/flexi-capture/fls/tutorial/step6.md): Analyze pre-recognition results in Sample 1 to choose reliable reference elements: text, barcode, and separator objects found on every test image. - [Sample 1. Step 7: Create a form identifier](https://docs.abbyy.com/flexi-capture/fls/tutorial/step7.md): Identify documents in Sample 1 by adding a required Static Text element, IDHeader, that finds the HALLOWEEN REGISTRATION FORM document heading. - [Sample 1. Step 8: Test the identifier element](https://docs.abbyy.com/flexi-capture/fls/tutorial/step8.md): Test the IDHeader identifier element in Sample 1 by matching the FlexiLayout with each batch image and reviewing results in the Tree of Hypotheses. - [Sample 1. Step 9: Adjust the properties of the identifier element](https://docs.abbyy.com/flexi-capture/fls/tutorial/step9.md): Adjust the IDHeader identifier in Sample 1 so multi-line headings match: keep spaces, permit multiple lines, and set the line break penalty to 1. - [Sample 1. Step 10: Describe the YOUR PLANET NAME field](https://docs.abbyy.com/flexi-capture/fls/tutorial/step10.md): Describe the YOUR PLANET NAME field in Sample 1 by planning a Static Text element, a Character String element, and a Text block to locate the field. - [Sample 1. Step 11: Describe the YOUR PLANET NAME field with a PlanetNameHeader element](https://docs.abbyy.com/flexi-capture/fls/tutorial/step11.md): Build the PlanetNameHeader Static Text element in Sample 1, searching for YOURPLANETNAME without spaces and allowing a 20 percent error rate. - [Sample 1. Step 12: Describe the YOUR PLANET NAME field with a PlanetName element](https://docs.abbyy.com/flexi-capture/fls/tutorial/step12.md): Step 12 of FlexiLayout Studio Sample 1: describe the YOUR PLANET NAME field with a Character String element using alphabets, counts, and relations. - [Sample 1. Step 13: Test the YOUR PLANET NAME field](https://docs.abbyy.com/flexi-capture/fls/tutorial/step13.md): Verify the PlanetName element in Sample 1 by matching the FlexiLayout against each batch image and checking the YOUR PLANET NAME field is found. - [Sample 1. Step 14: Describe the YOUR PLANET NAME field with a PlanetName block](https://docs.abbyy.com/flexi-capture/fls/tutorial/step14.md): Define the PlanetName Text block in FlexiLayout Studio Sample 1, setting its location by choosing the PlanetName element as the block's source element. - [Sample 1. Step 15: Describe the NAME field](https://docs.abbyy.com/flexi-capture/fls/tutorial/step15.md): Locate the NAME field in Sample 1 with NameHeader and GuestName elements, restricting the search area and alphabet to avoid ambiguous hypotheses. - [Sample 1. Step 16: Describe the YOUR SPACESHIP NUMBER field](https://docs.abbyy.com/flexi-capture/fls/tutorial/step16.md): Find the YOUR SPACESHIP NUMBER field in Sample 1 by giving the SpaceShip Character String element a regular expression instead of an alphabet. - [Sample 1. Step 17: Describe the DATE YOU ARRIVED AT THE EARTH field](https://docs.abbyy.com/flexi-capture/fls/tutorial/step17.md): Capture the DATE YOU ARRIVED AT THE EARTH field in Sample 1 with an ArrivalDate element of type Date, configuring the date formats it can match. - [Sample 1. Step 18: Describe the YOUR IDENTITY NUMBER ON THE PARTY field](https://docs.abbyy.com/flexi-capture/fls/tutorial/step18.md): Detect the YOUR IDENTITY NUMBER ON THE PARTY field in Sample 1 with an IdentityNumber Barcode element set to EAN13 and left-to-right orientation. - [Sample 1. Step 19: Describe the ANY TEXT field](https://docs.abbyy.com/flexi-capture/fls/tutorial/step19.md): Search for the unnamed ANY TEXT field in Sample 1 with a Paragraph element and a horizontal White Gap that separates the text from the barcode. - [Sample 1. Step 20: Describe the YOUR PHOTO IN FANCY DRESS field](https://docs.abbyy.com/flexi-capture/fls/tutorial/step20.md): Extract the YOUR PHOTO IN FANCY DRESS field in Sample 1 by grouping an Object Collection and four Separator elements in a compound Photo element. - [Sample 1. Step 21: Export the FlexiLayout](https://docs.abbyy.com/flexi-capture/fls/tutorial/step21.md): Export the finished Sample 1 FlexiLayout from FlexiLayout Studio to an AFL file so it can be loaded into an ABBYY FlexiCapture Document Definition. - [Sample 1. Step 22: Open the FlexiLayout in ABBYY FlexiCapture](https://docs.abbyy.com/flexi-capture/fls/tutorial/step22.md): Load the exported AFL FlexiLayout into an ABBYY FlexiCapture Document Definition and let the editor create the matching blocks automatically. - [Easiest Recipes](https://docs.abbyy.com/flexi-capture/fls/tutorial2/tutorial2-general.md): Overview of the Easiest Recipes sample: build a FlexiLayout that detects recipe name, number, ingredients, cooking time, and description fields. - [Sample 2. Step 1: Create a new project](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step1.md): Set up the Sample 2 Recipes project in ABBYY FlexiLayout Studio and review the project file, batch folder, and templates folder that are created. - [Sample 2. Step 2: Add images to the batch](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step2.md): Fill the Sample 2 batch with recipe test images in FlexiLayout Studio, selecting One document per file so each image is treated as its own document. - [Sample 2. Step 3: Set the FlexiLayout properties](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step3.md): Set FlexiLayout properties in ABBYY FlexiLayout Studio for the recipe sample: rename the layout, pick pre-recognition language, text type, and page count. - [Sample 2. Step 4: Pre-recognition](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step4.md): Step 4 of FlexiLayout Studio Sample 2: run pre-recognition on batch images to find pictures and paragraphs that serve as signposts for locating fields. - [Sample 2. Step 5: View images and pre-recognition results](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step5.md): Review pre-recognition results for the recipe sample in FlexiLayout Studio to spot reliable reference elements and learn about reference layouts. - [Sample 2. Step 6: Create a document identifier](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step6.md): Create a document identifier in FlexiLayout Studio by describing the form heading as a required Static Text element with search text and error tolerance. - [Sample 2. Step 7: Test the identifier element](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step7.md): Test the FormHeader identifier element by matching the FlexiLayout with each image, and then add a NearestY pre-search constraint to rule out false matches. - [Sample 2. Step 8: Specify the order in which the field Recipe # and the name for the recipe must be detected](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step8.md): Plan the search order for the Recipe # field and the unnamed recipe name field so the FlexiLayout can tell two closely spaced, similar fields apart. - [Sample 2. Step 9: Describe the Recipe #: field](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step9.md): Outline the elements needed to describe the Recipe #: field, including a Static Text name element, a Character String data element, and a RecipeNumber block. - [Sample 2. Step 10: Create the Recipe element](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step10.md): Build the Recipe element as optional Static Text in FlexiLayout Studio, set its search text and error percentage, and verify matching on test images. - [Sample 2. Step 11: Create a RecipeNumber element](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step11.md): Describe the RecipeNumber Character String element: define its alphabet, character count range, and Relations that anchor it to the Recipe field name. - [Sample 2. Step 12: Create the RecipeNumber block](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step12.md): Add a Text block named RecipeNumber and bind it to the RecipeNumber element as its source, letting ABBYY FlexiCapture recognize the recipe number field. - [Sample 2. Step 13: Describe the field that contains the name of the recipe](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step13.md): Locate the recipe name field with a RecipeName Character String element, combining NearestY constraints with excluded regions to narrow the search area. - [Sample 2. Step 14: Describe the Ingredients field](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step14.md): Capture the Ingredients field by grouping an IngredientsHeader, a horizontal Separator, and a Paragraph element inside a RecipeContents Group element. - [Sample 2. Step 15: Describe the field that contains the cooking instructions and the field that contains the cooking time](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step15.md): Structure the Cooking Group element that holds CookingTimeHeader, CookingTime, InvertedHeader, and Description elements for cooking time and instructions. - [Sample 2. Step 16: Create a CookingTimeHeader element](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step16.md): Find time units on recipe images with a CookingTimeHeader Static Text element and a NearestY constraint that targets the bottom edge of the page. - [Sample 2. Step 17: Create a CookingTime element](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step17.md): Detect the cooking time digits with a CookingTime Character String element constrained to sit left of and level with the CookingTimeHeader element. - [Sample 2. Step 18: Create a CookingTime block](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step18.md): Define the CookingTime block with a FlexiLayout language expression that merges the element rectangles and inflates the result by 3 mm for flexibility. - [Sample 2. Step 19: Create an InvertedHeader element](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step19.md): Step 19 of FlexiLayout Studio Sample 2: create an InvertedHeader Object Collection element to detect inverted text - light text on a dark background. - [Sample 2. Step 20: Describe the Cooking field](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step20.md): Break down the Cooking field into a Description Group containing Serves, Portions, and CookingDescription elements to exclude unwanted leading text. - [Sample 2. Step 21: Create a Serves element](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step21.md): Pinpoint the word Serves with a Static Text element, applying a Nearest pre-search relation to the CookingTimeHeader element to avoid false matches. - [Sample 2. Step 22: Create a Portions element](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step22.md): Extract the number of servings with a Portions Character String element whose alphabet, character count, and offsets tie it to the Serves element. - [Sample 2. Step 23: Describe the Cooking field](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step23.md): Bound the cooking instructions with a CookingDescription Paragraph element placed below the InvertedHeader element and above the Serves element. - [Sample 2. Step 24: Create a CookingDescription block](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step24.md): Assemble the cooking instructions block from a FlexiLayout language expression that joins element rectangles into a non-rectangular OutputRegion. - [Sample 2. Step 25: The FlexiLayout is ready](https://docs.abbyy.com/flexi-capture/fls/tutorial2/2step25.md): Finish the recipe sample by saving the completed FlexiLayout as an .afl file and exporting it into ABBYY FlexiCapture for production document processing. - [Invoices](https://docs.abbyy.com/flexi-capture/fls/tutorial3/tutorial3-general.md): Walk through Sample 3 in FlexiLayout Studio: build a FlexiLayout for a simple invoice with a table, capturing fields like Invoice Number and Total Amount. - [Sample 3. Step 1: Create the project and remove the Header and Footer elements](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step1.md): Prepare the invoice sample project: create Sample3 in ABBYY FlexiLayout Studio, add test images, and configure the FlexiLayout pre-recognition settings. - [Sample 3. Step 2: Visual analysis of the images and pre-recognition results](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step2.md): Analyze invoice test images after pre-recognition to identify field names, column headings, and separators that can anchor FlexiLayout element searches. - [Sample 3. Step 3: Blocks](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step3.md): Create the invoice sample blocks (six Text blocks plus an InvoiceTable Table block with named columns) before describing any FlexiLayout elements. - [Sample 3. Step 4: Analyze the images to decide in which order elements must be detected](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step4.md): Plan the element search order for the invoice FlexiLayout in Sample 3: analyze field arrangement and outline the InvoiceHeader group and its elements. - [Sample 3. Step 5: Detect the name of the Delivery Address field with a kwDeliveryAddress element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step5.md): Detect the Delivery Address field name with a kwDeliveryAddress Static Text element, setting search text, error percentage, and area constraints. - [Sample 3. Step 6: Detect the name of the Invoice Number field with the kwInvoiceNumber element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step6.md): Create a required kwInvoiceNumber Static Text element that finds the Invoice Number field name and identifies the document type in ABBYY FlexiCapture. - [Sample 3. Step 7: Detect the name of the Invoice Date field with a kwInvoiceDate element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step7.md): Find the Invoice Date field name with a kwInvoiceDate Static Text element, using relations and offsets to narrow the search for the short word Date. - [Sample 3. Step 8: Describe the Invoice Number field with an InvoiceNumber element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step8.md): Step 8 of FlexiLayout Studio Sample 3: describe the Invoice Number field with a Character String element, fuzzy character counts, and relation constraints. - [Sample 3. Step 9: Describe the Invoice Date field with grDate, InvoiceDate, and InvoiceDateAsString elements](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step9.md): Describe the Invoice Date field with grDate, InvoiceDate, and InvoiceDateAsString elements, adding a Character String fallback for poor quality scans. - [Sample 3. Step 10: Create a grAddress Group element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step10.md): Group the Delivery Address search elements in a grAddress element and set relation constraints that bound the area between the field name keywords. - [Sample 3. Step 11: Detect the right border of the Delivery Address field with a wgAddressRight element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step11.md): Set up a wgAddressRight White Gap element that marks the right border of the Delivery Address field and limits its search area in the FlexiLayout. - [Sample 3. Step 12: Describe the Delivery Address field with a DeliveryAddress element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step12.md): Capture the multi-line Delivery Address field with a DeliveryAddress Paragraph element, applying relations to nearby keywords and the white gap. - [Sample 3. Step 13: Further analysis of the images](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step13.md): Map out the remaining invoice elements in Sample 3: table header and footer detection strategy, column name elements, and the Footer group plan. - [Sample 3. Step 14: Detect the auxiliary horizontal separator with an hsTableHeaderTop element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step14.md): Add an hsTableHeaderTop Separator element that finds the horizontal line above the table header, configuring length, space, and relation settings. - [Sample 3. Step 15: Analyze the search constraints for column names with a TableHeader element of type Group](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step15.md): Define shared search constraints for invoice column names with a TableHeader Group element and a conditional FlexiLayout language expression. - [Sample 3. Step 16: Detect the name of the Quantity column with a kwQuantity element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step16.md): Locate the Quantity column name with a kwQuantity Static Text element, raising the error percentage to match the short keyword Qty reliably. - [Sample 3. Step 17: Detect the name of the Unit Price column with a kwUnitPrice element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step17.md): Pinpoint the Unit Price column name with a kwUnitPrice Static Text element that searches to the right of the detected Quantity column in the FlexiLayout. - [Sample 3. Step 18: Detect the name of the Total column with a kwTotal element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step18.md): Search for the Total column name with a kwTotal Static Text element placed to the right of the Unit Price column in the Sample 3 invoice FlexiLayout. - [Sample 3. Step 19: Create an InvertedHeader element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step19.md): Mark the right boundary of the invoice table by detecting the Sales column name with a kwSales Static Text element in FlexiLayout Studio. - [Sample 3. Step 20: Describe the Footer group with a Footer element of type Group](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step20.md): Build a Footer Group element that confines the search for the table footer, Country, Total Quantity, and Total Amount fields to the lower page area. - [Sample 3. Step 21: Describe the footer of the table with a kwFooter element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step21.md): Identify the invoice table footer with a kwFooter Static Text element that lists every keyword variant, from Discount to Carried Over, in one search. - [Sample 3. Step 22: Describe the name of the Total fields with a kwTotal element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step22.md): Spot the shared name of the Total Quantity and Total Amount fields with a kwTotal Static Text element matching TotalChf and CarriedOver keywords. - [Sample 3. Step 23: Detect the name of the Country field with a kwOrigin element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step23.md): Detect the Country field name with a kwOrigin Static Text element and a left-half page search constraint. - [Sample 3. Step 24: Describe the Country field with a Country element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step24.md): Extract the Country field with a Character String element tied to the kwOrigin name, setting alphabet, character count, and offset relations. - [Sample 3. Step 25: Detect the TotalQuantity and TotalAmount fields with TotalQuantity and TotalAmount elements](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step25.md): Recover the Total Quantity and Total Amount values with TotalQuantity and TotalAmount Character String elements inside an optional grTotal group. - [Sample 3. Step 26: Detect the Table element with an InvoiceTable element](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step26.md): Assemble the InvoiceTable Table element: configure columns, ordering rules, header, footer, and master columns to detect the invoice table reliably. - [Sample 3. Step 27: Export the FlexiLayout into ABBYY FlexiCapture](https://docs.abbyy.com/flexi-capture/fls/tutorial3/3step27.md): Save the finished Sample 3 FlexiLayout as an AFL file and export it into ABBYY FlexiCapture, with links to the detailed export steps in Sample 1. - [Multi-Page Invoice](https://docs.abbyy.com/flexi-capture/fls/tutorial4/tutorial4-general.md): Sample 4 introduces a multi-page invoice and shows how FlexiLayout Studio detects document boundaries and tables that stretch across several pages. - [Sample 4. Step 1: Create the project and assemble reference documents](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step1.md): Start the Sample 4 multi-page invoice tutorial: create a FlexiLayout Studio project, assemble reference documents, and set FlexiLayout properties. - [Sample 4. Step 2: View the images and pre-recognition results](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step2.md): Run pre-recognition on the Sample 4 batch and review which text objects and separators are reliable starting points for the multi-page FlexiLayout. - [Sample 4. Step 3: Blocks](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step3.md): Create Text and Table blocks (InvoiceNumber, InvoiceDate, DeliveryAddress, TotalAmount, Company, and InvoiceTable) for the Sample 4 invoice FlexiLayout. - [Sample 4. Step 4: Analyze the images to determine the order in which the elements should be detected](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step4.md): Analyze invoice images to plan element detection order, including Header and Footer elements that identify the first and last pages of multi-page documents. - [Sample 4. Step 8: Table element, InvoiceTable element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step8.md): Combine the prepared elements into an InvoiceTable Table element that finds the multi-page invoice table, with master columns and column content types. - [Sample 4. Step 10: Company field, CompanyGroup Group element, Company element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step10.md): Detect the Company field in FlexiLayout Studio Sample 4 using a Static Text element that searches a dictionary file within the first third of page one. - [Sample 4. Step 11: Export the FlexiLayout and add it to a Document Definition in ABBYY FlexiCapture](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step11.md): Export the finished Sample 4 FlexiLayout to an .afl file and attach it to a Document Definition in ABBYY FlexiCapture, with links to detailed steps. - [Sample 4. Step 5: Document header and InvoiceHeader group](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step5.md): Build the InvoiceHeader group in FlexiLayout Studio with Static Text, Character String, Date, and Paragraph elements to identify the invoice's first page. - [Sample 4. Step 5.1: Name of Invoice Number field, kwInvoiceNumber element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step5-1.md): Define the required kwInvoiceNumber Static Text element that finds the Invoice Number field name and serves as the identifier for the invoice document type. - [Sample 4. Step 5.2: Name of Delivery Address field, kwDeliveryAddress element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step5-2.md): Find the Delivery Address field name with a kwDeliveryAddress Static Text element that reads its search strings from the AddressHeaders.txt dictionary file. - [Sample 4. Step 5.3: Name of Invoice Date field, kwInvoiceDate element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step5-3.md): Locate the Invoice Date field name with a kwInvoiceDate Static Text element, using relations to kwInvoiceNumber and a Nearest constraint on hypotheses. - [Sample 4. Step 5.4: Invoice Number field, InvoiceNumber element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step5-4.md): Capture the Invoice Number value with an InvoiceNumber Character String element, restricting the search area with FlexiLayout language pre-search relations. - [Sample 4. Step 5.5: Invoice Date field, grDate, InvoiceDate, and InvoiceDateAsString elements](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step5-5.md): Step 5.5 of FlexiLayout Studio Sample 4: capture the Invoice Date field with a grDate group, Date element, and Character String fallback for poor scans. - [Sample 4. Step 5.6: Delivery Address field, grAddress, wgAddressAbove, and DeliveryAddress elements](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step5-6.md): Extract the multi-line Delivery Address with a grAddress group, a wgAddressAbove White Gap to bound the search area, and a DeliveryAddress Paragraph element. - [Sample 4. Step 6: Document Footer, InvoiceFooter group](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step6.md): Assemble the InvoiceFooter group that identifies the last page of the invoice using ExtraTag, AddTag, LongFooter, ShortFooter, and a required Paragraph. - [Sample 4. Step 6.1: Product Total column name, ExtraTag element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step6-1.md): Add an optional ExtraTag Static Text element to the InvoiceFooter group that searches for the PRODUCTTOTAL column name on the last page of the invoice. - [Sample 4. Step 6.2: Description column name, AddTag element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step6-2.md): Set up the AddTag Static Text element that finds the Designation or Description column name, with WholeWordMode and MaxGapInLine pre-search constraints. - [Sample 4. Step 6.3: The final part of the document, LongFooter element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step6-3.md): Describe the LongFooter Static Text element that detects the TOTALAMOUNTMUST, Carriedover, and TotalCHF keywords marking the final part of the invoice. - [Sample 4. Step 6.4: The final part of the document, ShortFooter element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step6-4.md): Configure the ShortFooter Static Text element to find the word Total only when LongFooter is not detected, excluding the ExtraTag region from the search. - [Sample 4. Step 6.5: The final part of the document, Paragraph element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step6-5.md): Complete the InvoiceFooter with a required Paragraph element whose search area follows the detected LongFooter or ShortFooter, and then match the FlexiLayout. - [Sample 4. Step 7: Table column names, TableHeader group](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step7.md): Prepare for table detection by creating a TableHeader group of Static Text elements that find the invoice table column names on the first page. - [Sample 4. Step 7.1: Name of Designation column, kwDesignation element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step7-1.md): Detect the Designation column name with a kwDesignation Static Text element matching the Designation or Description variants in the TableHeader group. - [Sample 4. Step 7.2: Name of ExtraQuantity column, ExtraQtyTag element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step7-2.md): Distinguish the extra quantity column by creating an ExtraQtyTag Static Text element, so the Quantity column name search can exclude its region later. - [Sample 4. Step 7.3: Name of Quantity column, kwQuantity element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step7-3.md): Identify the Quantity column name with a kwQuantity Static Text element matching Qty, Quantity, ORDERED, or QtyNet while excluding the ExtraQtyTag region. - [Sample 4. Step 7.4: Name of UnitPrice column, kwUnitPrice element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step7-4.md): Search for the Unit Price column name with a kwUnitPrice Static Text element placed right of kwQuantity and scored with a FuzzyQuality post-search check. - [Sample 4. Step 7.5: Name of Total column, kwTotal element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step7-5.md): Pinpoint the Total column name with a kwTotal Static Text element searched to the right of kwUnitPrice and nearest to a given X coordinate on the page. - [Sample 4. Step 7.6: Name of Reference column, kwReference element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step7-6.md): Recognize the Reference column name with a kwReference Static Text element that matches the Reference, ID, Item, or CODE variants in the TableHeader group. - [Sample 4. Step 7.7: Name of Sales column, kwSales element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step7-7.md): Step 7.7 of FlexiLayout Studio Sample 4: create a kwSales Static Text element to find the Sales column name and bound the invoice table on the right. - [Sample 4. Step 7.8: Name of Unit column, kwUnit element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step7-8.md): Tell the Unit column apart from Unit Price by creating a kwUnit Static Text element constrained to the left of the kwUnitPrice element's left boundary. - [Sample 4. Step 9: TotalAmount field, SumGroup Group element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step9.md): Group the Total Amount search in a SumGroup element constrained to look below the detected invoice table, hosting the kwTotal and TotalAmount subelements. - [Sample 4. Step 9.1: Total Amount name, kwTotal element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step9-1.md): Spot the Total Amount field name with a SumGroup.kwTotal Static Text element limited to the last page and scored by its distance from the table bottom. - [Sample 4. Step 9.2: Total Amount field, TotalAmount element](https://docs.abbyy.com/flexi-capture/fls/tutorial4/4step9-2.md): Set up the TotalAmount Character String element in FlexiLayout Studio Sample 4, restricting its search area with advanced pre- and post-search relations. ## Reference - [Support](https://docs.abbyy.com/flexi-capture/fls/appendix/support.md): Contact ABBYY technical support for FlexiLayout Studio: what details to prepare, where to find your build number, and how to register for free support. - [Glossary main body](https://docs.abbyy.com/flexi-capture/fls/glossary/glossary-main-body.md): Glossary of ABBYY FlexiLayout Studio terms, defining elements, blocks, hypotheses, search areas, layout alternatives, classifiers, and related concepts. - [Tips and tricks](https://docs.abbyy.com/flexi-capture/fls/tips-tricks/general.md): Explore tips and tricks for building FlexiLayouts that extract data from low-quality images, with sample projects covering typical search problems. - [Date search after high or low-quality recognition](https://docs.abbyy.com/flexi-capture/fls/tips-tricks/date2.md): Locate dates on low-quality images by combining Date, Character String, and Object Collection elements in the SearchOfDate.fsp FlexiLayout sample. - [Set multiple Static Text values for field name variants](https://docs.abbyy.com/flexi-capture/fls/tips-tricks/date3.md): List multiple Static Text values to detect field name variants such as Invoice, Invoice:, and Invoice #, using the StaticText.fsp sample project. - [Exclude regions from a search area](https://docs.abbyy.com/flexi-capture/fls/tips-tricks/date4.md): Remove unwanted regions from an element's search area with the Exclude function, demonstrated on address fields in the Exclude.fsp sample project. - [Optimize FlexiLayout structure and search with Group elements](https://docs.abbyy.com/flexi-capture/fls/tips-tricks/date5.md): Group related elements to reduce hypothesis combinations and speed up FlexiLayout matching, illustrated step by step in the GroupSample.fsp project. - [Search for single-line Static Text elements](https://docs.abbyy.com/flexi-capture/fls/tips-tricks/date6.md): Speed up Static Text searches in FlexiLayout Studio by entering single-line values without spaces, and see how spaces affect error limits and quality. - [Restrict the search area with RestrictSearchArea](https://docs.abbyy.com/flexi-capture/fls/tips-tricks/date7.md): Use RestrictSearchArea in FlexiLayout Studio to set a search area as a rectangle, rectangle array, or region and avoid duplicating element constraints. - [Search for single-line fields of known or unknown format on documents of varying OCR quality](https://docs.abbyy.com/flexi-capture/fls/tips-tricks/date8.md): Detect single-line fields like invoice numbers across varying OCR quality by combining Character String elements with regular expressions and alphabets. - [Search for elements with Nearest and FuzzyQuality](https://docs.abbyy.com/flexi-capture/fls/tips-tricks/date9.md): Compare the Nearest and FuzzyQuality functions in FlexiLayout Studio and apply them to detect invoice number and date fields on semi-structured documents. - [Optimize Group element search](https://docs.abbyy.com/flexi-capture/fls/tips-tricks/date10.md): Optimize Group element search in FlexiLayout Studio: quality-1 chains halt hypothesis generation, so apply FuzzyQuality penalties for correct detection. - [The Optional property of a Group element](https://docs.abbyy.com/flexi-capture/fls/tips-tricks/date11.md): Find out when to mark a Group element as Optional in FlexiLayout Studio, how null hypotheses behave, and why subelement calls need an IsNull check first. - [Search for strings of digits](https://docs.abbyy.com/flexi-capture/fls/tips-tricks/date12.md): Improve digit string detection in FlexiLayout Studio by adding misrecognized characters, such as B for 8 or S for 5, to the Character String alphabet. - [Simplify a FlexiLayout with an auxiliary element and a null hypothesis](https://docs.abbyy.com/flexi-capture/fls/tips-tricks/date13.md): Simplify bulky FlexiLayout code with an auxiliary dummy element whose null hypothesis marks when shared search constraints are met across several elements. - [Describe text fields containing framed letters](https://docs.abbyy.com/flexi-capture/fls/tips-tricks/combed-letters.md): Describe framed-letter (combed) text fields in FlexiLayout Studio by deriving field boundaries from White Gap elements in the block's Expression code. - [Appendix](https://docs.abbyy.com/flexi-capture/fls/appendix.md): Appendix links for ABBYY FlexiLayout Studio: shortcut keys, image formats, barcodes, OCR languages, regular expressions, dialog boxes, and patents. - [Shortcut keys](https://docs.abbyy.com/flexi-capture/fls/appendix/hot-keys.md): Browse the keyboard shortcuts in ABBYY FlexiLayout Studio, grouped by menu and window, from matching FlexiLayouts to navigating hypotheses and batches. - [Properties of image objects detected during pre-recognition](https://docs.abbyy.com/flexi-capture/fls/appendix/object-properties.md): Reference for read-only properties of image objects detected during pre-recognition in FlexiLayout Studio: words, lines, separators, raw objects, barcodes. - [Supported input formats](https://docs.abbyy.com/flexi-capture/fls/appendix/supported-formats.md): List of input file formats FlexiLayout Studio accepts, including text documents, spreadsheets, presentations, and image files like TIFF, PDF, and JPEG. - [Barcodes supported in ABBYY FlexiLayout Studio](https://docs.abbyy.com/flexi-capture/fls/appendix/barcode-types.md): Barcode types ABBYY FlexiLayout Studio can detect, including Code 128, Code 39, EAN, DataMatrix, PDF 417, QR Code, and postal barcodes. - [OCR languages supported in ABBYY FlexiLayout™ Studio](https://docs.abbyy.com/flexi-capture/fls/appendix/supported-languages.md): Full list of OCR languages supported by ABBYY FlexiLayout Studio for pre-recognition, from Abkhaz to Zulu, including MICR fonts and chemical formulas. - [User Dictionaries](https://docs.abbyy.com/flexi-capture/fls/appendix/user-dictionaries.md): Create and edit user dictionaries in FlexiLayout Studio to supplement built-in dictionaries with specialized terms via DIC files or regular expressions. - [Alphabet used in regular expressions](https://docs.abbyy.com/flexi-capture/fls/appendix/reg-ex.md): Regular expression reference for ABBYY FlexiLayout Studio: character classes, repetition counts, and groups, with sample patterns for zip codes and emails. - [Extended regular expressions](https://docs.abbyy.com/flexi-capture/fls/appendix/reg-ex-ext.md): Extended regular expressions add OCR-error tolerance to formats: the [% %] brackets and LETTERS or DIGITS keywords match commonly misrecognized characters. - [End-User License Agreement](https://docs.abbyy.com/flexi-capture/fls/appendix/eula.md): Legal terms of the End-User License Agreement (EULA) for ABBYY FlexiCapture, covering usage rights, restrictions, warranties, and liability. - [Patents](https://docs.abbyy.com/flexi-capture/fls/appendix/patents.md): Official list of U.S. patent numbers covering technology used in ABBYY FlexiCapture and FlexiLayout Studio, provided for legal reference. - [How to buy ABBYY FlexiCapture](https://docs.abbyy.com/flexi-capture/fls/buy.md): Contact details for purchasing ABBYY FlexiCapture: submit purchase orders or ask sales questions through ABBYY regional offices worldwide. - [Third Party Software/Open-Source Software used in the ABBYY FlexiCapture](https://docs.abbyy.com/flexi-capture/fls/id-other.md): Third-party and open-source software notices in the FlexiLayout Studio help, with license terms for PixTools, TWAIN, Parascript, and DjVu. - [Dialog boxes](https://docs.abbyy.com/flexi-capture/fls/dialogs.md): Links to reference topics for the main ABBYY FlexiLayout Studio dialog boxes: Options, the fuzzy interval visual editor, and Element Properties. - [Options dialog box](https://docs.abbyy.com/flexi-capture/fls/batch/options.md): Configure FlexiLayout Studio with the Options dialog box: object and code colors, page orientation, measurement units, training, and keyboard shortcuts. - [Fuzzy interval visual editor](https://docs.abbyy.com/flexi-capture/fls/interface/fuzzy-editor.md): Specify fuzzy intervals graphically with the Fuzzy Interval Editor in ABBYY FlexiLayout Studio, adjusting slopes, extreme points, and non-penalized points. - [Element Properties dialog box](https://docs.abbyy.com/flexi-capture/fls/properties-dialog.md): Index of Element Properties dialog box tabs in FlexiLayout Studio, from General, Static Text, and Character String to table, relations, and advanced tabs.