跳轉到主要內容
此物件對應於一個可能包含多個頁面的處理文件。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 使用者無需關心事件介面的實作細節,因為此開發平台提供了簡便的處理方式。

屬性

,唯讀

回傳 Engine 物件。

, 唯讀

回傳為 IFRDocument 物件配置的記憶體大小。此屬性的值 以位元組為單位。

,唯讀

回傳文件的頁面集合。

,唯讀

以特殊的「純文字」格式回傳文件內容。

, 唯讀

回傳已識別文件的主要語言。此屬性包含偵測到的語言集合中第一個語言的 內部名稱 (DetectedLanguages 屬性) 。

只有在啟用自動語言偵測的情況下執行識別時,此屬性值才有意義 (詳情請參閱屬性) ;否則為空字串。

,唯讀

可存取已識別文件中偵測到的識別語言集合。集合中的語言會依出現頻率排 序:從最常出現到最少出現。

只有在啟用自動語言偵測的情況下執行識別時,此屬性值才有意義 (詳情請參閱屬性) 。

語言清單只會在識別後更新;也就是說,如果您手動編輯文件的版面配置, 該集合仍維持不變。

, 唯讀

指定文件的邏輯結構是否已失效。若此屬性為 TRUE,您應在匯出前執行文 件合成。否則,匯出期間將會發生錯誤。

在使用 Visual Components 時,此屬性很實用。如果使用者透過 Visual Components 的 GUI 變更文件中頁面的順序或數量,文件的邏輯結構就會失 效。若使用 Visual Components 中可用的命令匯出此類文件,Visual Components 會自動進行文件合成。但若您使用 FineReader Engine API 方 法進行匯出,則必須由您負責在匯出前執行文件合成。

值得注意的是,不僅文件結構,頁面結構也可能失效。因此,在匯出前, 您也應檢查文件中的所有頁面是否都具有有效的頁面結構 (請參閱IFRPage::PageStructureOutOfDate屬性) 。

,唯讀

提供對文件中偵測到的名片集合的存取。

包含文件的作者、關鍵字、主題和標題資訊,並儲存文件資訊字典。

傳回文件的附件集合。這些附件是在開啟輸入 PDF 文件時從中提取的,或者您可以在匯出時新增自己的檔案以附加到輸出 PDF 檔案。要將此集合的所有檔案附加到輸出 PDF 檔案,請將屬性設為 TRUE。

,唯讀

傳回從輸入 PDF 檔案資源中提取的字型名稱集合。如果文件是透過開啟其他格式的檔案,或來自不含字型的 PDF 檔案建立,則會傳回空集合。

,唯讀

表示來源檔案中是否至少有一個為數位簽署的 PDF。

指定對應頁面的物件是否應在沒有參考時卸載並儲存到磁碟。

對於 Linux,當此屬性值設為 PFP_KeepInMemory 時,未使用的頁面影像文件和版面不會儲存到磁碟。

此屬性預設為 PFP_Auto。

對於 macOS,此屬性值會被忽略。未使用的頁面影像文件和版面一律會卸載到磁碟。

對於 Windows:要卸載並將文件個別頁面的 ImageDocument 和 Layout 物件儲存到磁碟,請對應頁面使用IFRPage::Flush方法。

此屬性預設為 PFP_Auto。

指定儲存 ABBYY FineReader Engine 內部格式臨時影像檔案的資料夾路徑。

預設情況下,此屬性的值為「%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 進行並行處理 使用可連接物件 使用屬性