跳轉到主要內容
此方法已在 Linux 和 Windows 版 FRE 中實作。
此方法是在用戶端實作。它會從來源的影像處理佇列中傳回下一個影像文件。
在 Windows 上,只有當您開啟的是已載入記憶體中的影像時,才應使用此方法;例如,使用 Engine 物件的 OpenBitmapOpenDib 方法時。如果您是從磁碟上的檔案取得影像,請實作 GetNextImageFile
GetNextImageDocument 方法的實作可能包含等待下一個影像文件的時間。不過,我們不建議設定過長的等待時間,因為 FineReader Engine 並非多執行緒。在等待下一個文件期間,Engine 將無法處理來自辨識程序的訊息,也無法接收頁面處理完成的通知。如果您確實需要指定較長的等待時間,GetNextImageDocument 方法可以傳回 0。在此情況下,Engine 將繼續處理來自辨識程序的訊息、提供已辨識的影像,並在稍後檢查影像佇列是否為空。如果佇列不是空的 (也就是說,如果 IImageSource::IsEmpty 傳回 FALSE) ,Engine 會再次呼叫 GetNextImageDocument 方法。不過,如果 GetNextImageDocument 方法傳回 0,且已沒有更多頁面可處理,FineReader Engine 會將控制權交還給使用者:IBatchProcessor::GetNextProcessedPage 方法將傳回 0。
  • 佇列中的所有 ImageDocument 物件,都必須在處理結束前保持有效。為了確保正常運作,ImageDocument 物件應透過 Engine 物件建立。如果它們是透過 FRDocument 物件建立,則可能會因為在呼叫 GetNextImageDocument 方法期間 FRDocument 物件遭到銷毀而發生錯誤。
  • 由於此方法是在用戶端實作,因此有以下限制:
    • 所有受密碼保護的檔案都應在用戶端手動開啟;
    • 在初始化 BatchProcessor 物件時,於 PrepareImageMode 物件中指定的屬性,不會影響佇列中的 ImageDocument 物件。

語法

C++

HRESULT GetNextImageDocument( IImageDocument** Result );

C#

IImageDocument GetNextImageDocument();

Visual Basic .NET

Function GetNextImageDocument() As IImageDocument

參數

Result [out, retval] 指向 IImageDocument* 指標變數的指標,用於存取佇列中的下一個影像文件。

回傳值

[僅限 C++] 如果此方法回傳的值不是 S_OK,表示用戶端發生錯誤。

備註

此 方法 的客戶端實作必須確保,方法 內部擲出的所有例外狀況都會被攔截並處理,且不會有任何例外狀況傳遞到 方法 外部。若例外狀況傳遞到 方法 外部,可能會導致不可預期的結果 (例如程式終止) 。

範例

// 自訂影像來源的範例實作,會維護影像檔案佇列
public class ImageSourceCallback : FREngine.IImageSource
{
   public ImageSourceCallback( string imageFilesDirectory )
   {
       imageFiles = ImageSourceHelper.LoadFilesNames( imageFilesDirectory );
       nextFileIndex = 0;
   }
   public bool IsEmpty()
   {
       return nextFileIndex >= imageFiles.Length;
   }
   public FREngine.IFileAdapter GetNextImageFile()
   {
       if( !IsEmpty() ) {
           return new FileAdapterCallback( imageFiles[nextFileIndex++] );
       }
       return null;
   }
   public FREngine.IImageDocument GetNextImageDocument()
   {
       ...
   }
   private string[] imageFiles;
   private int nextFileIndex;
}
public class FileAdapterCallback : FREngine.IFileAdapter
{
    ...
}
public class ImageSourceHelper
{
    ...
}

另請參閱

IImageSource GetNextImageFile IsEmpty ImageDocument