跳转到主要内容
该对象对应一个待处理的文档,该文档可能包含多个页面。FRDocument 对象是文档页面集合的根对象。每个页面都包含一个已打开的图像及其图像版面。 FRDocument 对象提供文档处理所需的全部方法。您既可以仅使用一个方法 (Process 方法) 处理文档,也可以分步处理,依次执行分析、识别、合成和导出。通常,在一般的文档处理场景中,这些步骤都是必需的。有关详细信息,请参见相应方法的说明。完成对 FRDocument 对象的使用后,请释放该对象占用的所有资源 (使用 Close 方法) 。 该对象通过 DocumentContentInfo 属性提供对各种文档属性的访问,例如作者、关键词、主题和标题。 FRDocument 对象是所谓的“可连接对象”。对于 Windows 上 FRE 中的 Visual Basic,可以将其声明为 WithEvents。对于 C++ (所有受支持的操作系统) ,这意味着它支持 IConnectionPointContainer 接口。要在处理期间接收通知事件,C++ 用户应创建一个派生自 IFRDocumentEvents 接口的对象,然后:
  • 在 Linux 或 macOS 中,通过调用 AdviseFREngineObject 全局函数,将该对象注册到 FRDocument 对象。
  • 在 Windows 中,通过标准 COM 方式建立该对象与 FRDocument 对象中实现的事件源之间的连接。
在 Windows 中:FRDocument 对象也可以在 Visual Basic 中声明为 WithEvents。FRDocument 对象的方法通过特殊的传出接口报告页面处理进度信息。这些接口包括 IFRDocumentEvents (用于 C++) 和 dispinterface DIFRDocumentEvents (用于 Visual Basic) 。需要注意的是,Visual Basic 用户无需关心事件接口实现的细节,因为该开发平台提供了便捷的处理机制。

属性

,read-only

返回 Engine 对象。

,只读

返回为 IFRDocument 对象分配的内存大小,以字节为单位。

,read-only

返回文档的页面集合。

,read-only

以特殊的”纯文本”格式返回文档的文本内容。

,只读

返回已识别文档的主要语言。该属性包含已检测语言集合 (DetectedLanguages 属性) 中第一种语言的内部名称。

仅当启用自动语言检测进行识别时,此属性才有意义 (详情请参阅属性) ;否则为空字符串。

,read-only

提供对已识别文档中检测到的识别语言集合的访问。集合中的语言按出现频率从高到低排序。

仅当启用自动语言检测进行识别时,此属性才有意义 (详情请参阅属性) 。

语言列表仅在识别完成后才会更新,即若手动编辑文档版面,集合内容不会改变。

,只读

指定文档的逻辑结构是否已过期。若此属性为 TRUE,则必须在导出前执行文档合成,否则导出时将报错。

使用 Visual Components 时,此属性尤为有用。若用户通过 Visual Components 的图形界面更改了文档中页面的顺序或数量,文档的逻辑结构将变为无效。若使用 Visual Components 提供的命令导出此类文档,Visual Components 会自动合成文档;但若使用 FineReader Engine API 方法进行导出,则需要自行在导出前执行文档合成。

需要注意的是,不仅文档结构,页面结构同样可能变为无效。因此,导出前还应检查文档中所有页面的页面结构是否有效 (请参阅IFRPage::PageStructureOutOfDate属性) 。

,read-only

Provides access to the collection of business cards detected in the document.

Contains information about the author, keywords, subject, and title of the document and stores the document information dictionary.

Returns the collection of attachments of the document. They are extracted from the input PDF document during opening, or you can add your own files to be attached to the output PDF file during export. To attach all the files of this collection to the output PDF file, set theproperty to TRUE.

,read-only

Returns the collection of the names of fonts which have been extracted out of the input PDF file resources. If the document has been created by opening a file in other format, or from a PDF file containing no fonts, an empty collection will be returned.

, read-only

Indicates whether at least one of the source files was a digitally signed PDF.

Specifies if theand theobjects for corresponding pages should be unloaded and saved to disk if there are no references to these objects.

For Linux, when this property value is set to PFP_KeepInMemory, the image documents and layouts for unused pages are not saved to disk.

此属性的默认值为 PFP_Auto。

对于 macOS,此属性值将被忽略。未使用页面的图像文档和 Layout 始终会卸载至磁盘。

对于 Windows:若要将文档各页面的 ImageDocument 和 Layout 对象卸载并保存到磁盘,请对相应页面调用IFRPage::Flush方法。

此属性的默认值为 PFP_Auto。

Specifies the path to the folder where the temporary image files in the ABBYY FineReader Engine internal format are stored.

By default, the value of this property is “%TEMP%\ABBYY FineReader Engine 12”.

方法

名称说明
AddImageDocument将一个已打开的图像 (以 ImageDocument 对象表示) 添加到文档中。
AddImageFile打开图像文件,并将该文件对应的页面添加到文档中。
AddImageFileFromAttachment从附件中打开图像文件,并将该文件对应的页面添加到文档中。
AddImageFileFromMemory从全局内存中打开用户此前加载到其中的图像文件,并将该文件对应的页面添加到文档中。
AddImageFileFromStream从用户实现的输入流中打开图像文件,并将该文件对应的页面添加到文档中。
AddImageFileWithPassword打开受密码保护的图像文件,并将该文件中的页面添加到文档中。
AddImageFileWithPasswordCallback使用 IImagePasswordCallback 接口打开图像文件,并将该已打开文件对应的页面添加到文档中。
AddPage向文档中添加一个页面。
Analyze对文档中的所有页面进行版面分析。
AnalyzePages对文档中指定的页面执行版面分析。
CheckTextLayer检查指定文档页面中的文本层是否存在以及是否可靠。
Close释放 FRDocument 对象使用的所有资源,并将该对象恢复到初始状态 (与通过 IEngine::CreateFRDocument 方法创建后相同) 。
ConvertFromOldVersion从指定文件夹中加载由旧版本的 ABBYY FineReader Engine 保存的 FRDocument 对象内容。
Export将文档保存为外部格式的文件。
ExportPages将指定页面保存为外部格式的文件。
ExportToMemory将文档以外部格式导出到内存中。
LoadFromFolder从指定文件夹中加载由 ABBYY FineReader Engine 12 保存的 FRDocument 对象内容。
Preprocess对文档中的所有页面进行预处理:校正页面方向、反相和几何失真,并在必要时进行页面拆分。
PreprocessPages对文档中指定的页面执行预处理:校正页面方向、反转和几何失真,并在必要时进行页面拆分。
Process对文档中的所有页面执行预处理、版面分析、识别以及页面和文档合成。
ProcessPages对文档中指定页面执行预处理、版面分析、识别以及页面和文档合成。
Recognize对文档中所有页面执行识别和页面合成。
RecognizePages执行文档中指定页面的识别和页面合成。
SaveToFolder将 FRDocument 对象的内容保存到指定文件夹。
SplitPages将文档中指定的每个页面拆分成多个页面。如果某个页面是书籍的跨页版面,或者包含多张名片的图像,则此方法非常有用。该方法还会提供有关页面如何被拆分的信息。
Synthesize对文档中的所有页面进行文档合成。
SynthesizePages对文档中的指定页面进行文档合成。
FRDocument 对象图

输出参数

该对象是 Engine 对象的 CreateFRDocumentCreateFRDocumentFromImage 方法的输出参数。

输入参数

此对象会作为输入参数传递给以下对象的方法: FRDocument_VC

示例

FREngine.IEngine engine;
// 创建文档
FREngine.IFRDocument document = Engine.CreateFRDocument();
try {
 // 将图像文件添加到文档
 document.AddImageFile( "D:\\Demo.tif", null, null );
 // 识别文档
 document.Process( null );
 // 使用默认参数将结果保存为 rtf
 document.Export( "D:\\Demo.rtf", FREngine.FileExportFormatEnum.FEF_RTF, null );
}
catch( Exception error )
{
 ...
}
finally {
 // 关闭文档
 document.Close();
}
FREngine::IEnginePtr Engine;
// 创建文档
FREngine::IFRDocumentPtr frDocument = Engine->CreateFRDocument();
try {
 // 将图像文件添加到文档
 frDocument->AddImageFile( L"D:\\Demo.tif", 0, 0 );
 // 识别文档
 frDocument->Process( 0 );
 // 使用默认参数将结果保存为 rtf
 frDocument->Export( L"D:\\Demo.rtf", FREngine::FEF_RTF, 0 );
} catch( _com_error& e ) {
 ...
 // 关闭文档
 frDocument->Close();
}
// 关闭文档
frDocument->Close();
该对象几乎用于所有代码示例,唯一的例外是适用于 Linux/Windows 的 BatchProcessing 代码示例。

另请参阅

FRPage IFRDocumentEvents ABBYY FineReader Engine 中的并行处理 使用 Connectable Objects 使用属性