> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Document-Related Objects Compatibility with Version 10

> Document-related object API compatibility changes between ABBYY FineReader Engine 12 and 10 — DocumentStructure and PageStructure removed; layout-based access via FRPage.

This section describes all changes to document-related objects which may require changes in the source code of your applications.

* The API which provided access to the logical structure of the document (DocumentStructure, PageStructure and their subobjects) has been removed. Editing the properties and contents of the document via the deleted objects could have led to unpredictable results on export. If you need to verify or postprocess the recognition results, work with the data via the [Layout](/fine-reader/engine/api-reference/document-related-objects/frpage#layout) subobject of each [FRPage](/fine-reader/engine/api-reference/document-related-objects/frpage) and call any of the methods which perform document synthesis when done. The logical structure of the document will then be recreated and used at the export stage, although it will no longer be available for editing via FineReader Engine API. The future versions of ABBYY FineReader Engine may provide read-only access to some of the document logical structure.

<table><thead><tr><th><p><strong>Object/Enumeration</strong></p></th><th><p><strong>Property/Method/Constant</strong></p></th><th><p><strong>What has happened?</strong></p></th><th><p><strong>Comment</strong></p></th></tr></thead><tbody><tr><td rowspan="5"><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/frdocument">FRDocument</a></strong></p></td><td><p><strong>AddImage</strong></p></td><td><p>Renamed</p></td><td><p>The new name of the method is <strong><a href="/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagedocument-method">AddImageDocument</a></strong>. This method has been renamed to make it clear that it works with <strong>ImageDocument</strong>, not an image file from disk.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagefilefrommemory-method">AddImageFileFromMemory</a></strong></p></td><td><p>Input parameters number changed</p></td><td><ul><li>The pointer to a memory buffer containing image data is passed as <strong><a href="/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties">\_\_int64</a></strong>. This change has been made for 64-bit operating systems support.</li><li>The variable <em>fileFormat</em> is no longer used as an input parameter. File format is determined using the <em>fileName</em> parameter.</li><li>The following files can be opened from memory.<ul><li>PDF,</li><li>DjVu (Windows)</li><li>WDP  (Windows)</li></ul></li></ul><p>Because of this the method now receives the pointer to <strong><a href="/fine-reader/engine/api-reference/image-related-objects/iimagepasswordcallback">IImagePasswordCallback</a></strong> interface, which is necessary for opening password-protected PDF files.</p><ul><li>The method also receives an <strong><a href="/fine-reader/engine/api-reference/supplementary-objects-and-methods/intscollection">IntsCollection</a></strong> object specifying which pages of a multi-page file should be added.</li></ul></td></tr><tr><td><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/frdocument/analyze-method">Analyze</a></strong></p><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/frdocument/analyzepages-method">AnalyzePages</a></strong></p></td><td><p>Input parameters number changed</p></td><td><p>These methods take as input parameters a set of subobjects of the <strong><a href="/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/pageprocessingparams">PageProcessingParams</a></strong> object — only those parameters that are needed for page analysis are passed to these methods.</p></td></tr><tr><td><p><strong>AnalyzeAndRecognize</strong></p><p><strong>AnalyzeAndRecognizePages</strong></p></td><td><p>Removed</p></td><td><p>The same functionality is provided via the <strong><a href="/fine-reader/engine/api-reference/document-related-objects/frdocument/process-method">Process</a></strong> and <strong><a href="/fine-reader/engine/api-reference/document-related-objects/frdocument/processpages-method">ProcessPages</a></strong> methods of the <strong>FRDocument</strong> object with the <strong><a href="/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/documentprocessingparams#performsynthesis">PerformSynthesis</a></strong> property of the <strong>DocumentProcessingParams</strong> input parameter set to FALSE.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/frdocument/process-method">Process</a></strong></p></td><td><p>Input parameters number changed</p></td><td><p>The method receives all necessary parameters in one <strong><a href="/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/documentprocessingparams">DocumentProcessingParams</a></strong> object.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/ifrdocumentevents">IFRDocumentEvents</a></strong></p></td><td><p><strong>OnRecognizerTip</strong></p></td><td><p>Renamed</p></td><td><p>The new name of the method is <strong><a href="/fine-reader/engine/api-reference/document-related-objects/ifrdocumentevents/onwarning-method">OnWarning</a></strong>. It can deliver warnings as well as recognizer tips to the client, and also process system messages to avoid the effect that the application "is not responding".</p><p>It also has an additional parameter which specifies the index of the page in the document to which the warning refers.</p></td></tr><tr><td><p><strong>Artefact</strong></p><p><strong>BackgroundLayer</strong></p><p><strong>Caption</strong></p><p><strong>Captions</strong></p><p><strong>DocumentElement</strong></p><p><strong>DocumentSection</strong></p><p><strong>DocumentStream</strong></p><p><strong>DocumentStructure</strong></p><p><strong>Footnote</strong></p><p><strong>Footnotes</strong></p><p><strong>FootnoteSeries</strong></p><p><strong>FootnoteSeriesArray</strong></p><p><strong>GlobalStyleStorage</strong></p><p><strong>Incut</strong></p><p><strong>IncutGroup</strong></p><p><strong>IncutGroups</strong></p><p><strong>MainText</strong></p><p><strong>PageBlackSeparator</strong></p><p><strong>PageElement</strong></p><p><strong>PageElements</strong></p><p><strong>PageSection</strong></p><p><strong>PageSections</strong></p><p><strong>PageStream</strong></p><p><strong>PageStructure</strong></p><p><strong>RunningTitle</strong></p><p><strong>RunningTitleSeries</strong></p><p><strong>RunningTitleSeriesArray</strong></p><p><strong>RunningTitleSeriesText</strong></p><p><strong>StreamElementLocationParams</strong></p><p><strong>TextBarcode</strong></p><p><strong>TextPicture</strong></p><p><strong>TextTable</strong></p><p><strong>TextTableCell</strong></p></td><td><br /></td><td><p>Removed</p></td><td><p>These objects represented the logical structure of the document and its various parts. Editing the document structure is no longer supported, as its incorrect use could affect the appearance of the exported document, and any text verification or other modifications may be performed via the document API (<strong><a href="/fine-reader/engine/api-reference/document-related-objects/frdocument">FRDocument</a></strong>, <strong><a href="/fine-reader/engine/api-reference/document-related-objects/frpage">FRPage</a></strong> and subobjects). The future versions of ABBYY FineReader Engine may provide read-only access to some of the document logical structure.</p></td></tr><tr><td><p><strong>BorderFlags</strong></p><p><strong>CaptionPositionEnum</strong></p><p><strong>DocumentElementTypeEnum</strong></p><p><strong>FootnoteNumberingTypeEnum</strong></p><p><strong>FrameHorizontalReferenceEnum</strong></p><p><strong>FrameVerticalReferenceEnum</strong></p><p><strong>PageBlackSeparatorRoleEnum</strong></p><p><strong>PageBlackSeparatorTypeEnum</strong></p><p><strong>PageElementTypeEnum</strong></p><p><strong>StreamElementAlignmentEnum</strong></p><p><strong>StreamTypeEnum</strong></p><p><strong>TableCellVertAlignmentEnum</strong></p><p><strong>TextTableSeparatorTypeEnum</strong></p><p><strong>TextWrappingEnum</strong></p></td><td><br /></td><td><p>Removed</p></td><td><p>These enumerations were used by the document structure objects that are no longer available.</p></td></tr><tr><td rowspan="6"><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/frpage">FRPage</a></strong></p></td><td><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/frpage/analyze-method">Analyze</a></strong></p><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/frpage/analyzeregion-method">AnalyzeRegion</a></strong></p><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/frpage/analyzetable-method">AnalyzeTable</a></strong></p></td><td><p>Behavior changed</p></td><td><ul><li>The methods take as input parameters a set of subobjects of the <strong><a href="/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/pageprocessingparams">PageProcessingParams</a> </strong>object — only those parameters that are needed for page analysis are passed to these methods.</li><li>The <strong>Analyze</strong> method does not perform correction of page orientation, inversion, and geometrical distortions any more. Image preprocessing is a separate processing stage now. To correct orientation, inversion, geometrical distortion, use corresponding methods of the <strong>FRPage</strong> object, or perform all these operations as a whole using the <strong><a href="/fine-reader/engine/api-reference/document-related-objects/frpage/preprocess-method">IFRPage::Preprocess</a></strong> method.</li></ul></td></tr><tr><td><p><strong>AnalyzeAndRecognize</strong></p></td><td><p>Renamed</p></td><td><p>The new name of the method is <strong><a href="/fine-reader/engine/api-reference/document-related-objects/frpage/preprocessanalyzerecognize-method">PreprocessAnalyzeRecognize</a></strong>. The only difference from the old method is that now this method receives only one input parameter of the <strong><a href="/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/pageprocessingparams">PageProcessingParams</a></strong> type, which contains all the necessary settings for processing.</p></td></tr><tr><td><p><strong>CorrectResolution</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong><a href="/fine-reader/engine/api-reference/document-related-objects/frpage/detectresolution-method">IFRPage::DetectResolution</a></strong> and <strong><a href="/fine-reader/engine/api-reference/image-related-objects/imagedocument/changeresolution-method">IImageDocument::ChangeResolution</a></strong> methods instead. This allows the user to check the resolution suggested by the<strong> <a href="/fine-reader/engine/api-reference/document-related-objects/frpage/detectresolution-method">DetectResolution</a></strong> method before applying it to the image. It may be that the proposed correction is so small that it is no use applying it.</p><p>However, note that you can still correct the resolution automatically during preprocessing by setting the <strong>CorrectResolution</strong> property in <strong><a href="/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/pagepreprocessingparams">PagePreprocessingParams</a></strong>.</p></td></tr><tr><td><p><strong>RemoveGeometricalDistortions</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong>IImageDocument::RemoveGeometricalDistortions</strong> method instead.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/frpage/flush-method">Flush</a></strong></p></td><td><p>Input parameters number changed</p></td><td><p>This method receives a boolean input parameter specifying whether the data should be saved to disk. This is useful in case the data is unchanged, because the method will work much quicker when saving is not required.</p></td></tr><tr><td><p><strong>FlushExt</strong></p></td><td><p>Removed</p></td><td><p>The <strong><a href="/fine-reader/engine/api-reference/document-related-objects/frpage/flush-method">Flush</a></strong> method has the same signature as the <strong>FlushExt</strong> method.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/ifrpageevents">IFRPageEvents</a></strong></p></td><td><p><strong>OnRecognizerTip</strong></p></td><td><p>Renamed</p></td><td><p>The new name of the method is <strong><a href="/fine-reader/engine/api-reference/document-related-objects/ifrpageevents/onwarning-method">OnWarning</a></strong>. It can deliver warnings as well as recognizer tips to the client, and also process system messages to avoid the effect that the application "is not responding".</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/frpages">FRPages</a></strong></p></td><td><p><strong>Find</strong></p><p><strong>Remove</strong></p></td><td><p>Renamed</p></td><td><p>The new names of the methods are <strong><a href="/fine-reader/engine/api-reference/document-related-objects/frpages/indexof-method">IndexOf</a></strong>, <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/deleteat-method">DeleteAt</a></strong>. Methods of all collections have been renamed to be uniform.</p></td></tr><tr><td rowspan="2"><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/documentinformationdictionary">DocumentInformationDictionary</a></strong></p></td><td><p><strong>Add</strong></p><p><strong>CreateDocumentInformationDictionaryItem</strong></p><p><strong>Insert</strong></p></td><td><p>Renamed</p></td><td><p>Use the <strong><a href="/fine-reader/engine/api-reference/supplementary-objects-and-methods/addnew-method">AddNew</a></strong> method instead. Methods of all collections have been renamed to be uniform.</p></td></tr><tr><td><p><strong>CopyFrom</strong></p></td><td><p>Removed</p></td><td><p>This method is no longer supported. To copy the values of elements from another collection, you can add new elements to the collection using the <strong><a href="/fine-reader/engine/api-reference/supplementary-objects-and-methods/addnew-method">AddNew</a></strong> method and specify the same values of elements.</p></td></tr><tr><td rowspan="2"><p><strong><a href="/fine-reader/engine/api-reference/document-related-objects/authorslist">AuthorsList</a></strong></p></td><td><p><strong>Add</strong></p><p><strong>CreateAuthorInfo</strong></p></td><td><p>Renamed</p></td><td><p>Use the <strong><a href="/fine-reader/engine/api-reference/supplementary-objects-and-methods/addnew-method">AddNew</a></strong> method instead. Methods of all collections have been renamed to be uniform.</p></td></tr><tr><td><p><strong>Remove</strong></p><p><strong>RemoveAll</strong></p></td><td><p>Renamed</p></td><td><p>The new names of the methods are <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/deleteat-method">DeleteAt</a></strong>, <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/deleteall-method">DeleteAll</a></strong>. Methods of all collections have been renamed to be uniform.</p></td></tr></tbody></table>
