跳轉到主要內容
本主題適用於 Linux 版 FRE。
這種載入方式可讓您將 ABBYY FineReader Engine 作為處理序外伺服器載入至另一個獨立的處理序。使用此載入方式時,所有 ABBYY FineReader Engine 物件都具備完整的執行緒安全性。每個 FineReader Engine 實例都會在各自獨立的處理序中與其他實例同時執行。這可讓您建立處理器集區,並充分運用可用的 CPU 效能。因此,這種方法特別適合伺服器應用程式。 若要將 Engine 作為處理序外伺服器載入至獨立處理序,請使用發行內容中提供的下列檔案:
  • OutprocEngineLoader.h 檔案會宣告 Engine 物件的初始化和反初始化方法 (若為 C++,請使用此標頭檔中宣告的 InitializeEngine 和 ExplicitlyUnload 函式) 。
  • FREgnineOutproc.h 檔案包含在 OutprocEngineLoader.h 中。它相當於適用於多執行緒解決方案的 FREngine.h 檔案,支援相同的方法和介面,但不包含參考計數方法,以及帶有 SAFEARRAY 參數的方法。
  • FREngineOutproc.h 中宣告的方法不處理參考循環。因此,OutprocSafePtr.h 檔案提供了 SafePtr 的特定實作,您可在說明如何作為處理序外伺服器載入的程式碼範例中找到它。您可以包含此標頭檔,或自行建立。
  • 每次將 Engine 載入至獨立處理序時,都需要一個 TCP 連接埠。設定檔 OutprocConfig.ini 包含用於處理序間通訊的可用連接埠範圍。
  • 如果您的應用程式使用 C++,還必須在專案中另外連結 libOutprocClientLib.so 程式庫。
  • 如果您使用 Java wrapper,請使用 com.abbyy.Outproc.FREngine.jar,而非 com.abbyy.FREngine.jar。這些檔案包含在 ABBYY FineReader Engine 發行套件中。
請參閱 Hello (Outproc)Multithreading 程式碼範例。這些範例示範如何將 Engine 載入為處理序外伺服器,並為 C++ 和 Java 的多執行緒應用程式提供可重複使用的解決方案。 載入為處理序外伺服器的 Engine 物件,在使用 ABBYY FineReader Engine 物件和方法時有以下特性:
  • 您必須將 MultiProcessingParams 物件的 MultiProcessingMode 屬性設為 MPM_Sequential,以指定文件處理的循序模式。
  • 對於衍生自 IUnknown 的參數,您必須傳遞 NULL。這些參數通常用於匯出方法。若要改用其他方式傳遞匯出參數,請建立具有所需設定的 user profile
  • 載入為處理序外伺服器的 Engine 物件不支援下列操作:
    • callbacks,以及參數衍生自 callbacks 的方法
    • 用於從記憶體開啟影像的介面和方法
您也可以使用 Working with Layout and Blocks 中所述的方法,加快逐一處理文件版面的速度。