跳轉到主要內容
此方法已在 Linux 和 Windows 版 FRE 中實作。
此方法是在用戶端實作。它會從來源的影像處理佇列中傳回下一個影像檔案。
在 Windows 上,如果您處理的是已載入記憶體中的影像 (例如使用 Engine 物件的 OpenBitmapOpenDib 方法) ,請實作 GetNextImageDocument
GetNextImageFile 方法的實作可以包含等待下一個影像檔案的時間。不過,我們不建議設定過長的等待時間,因為 FineReader Engine 並非多執行緒。在等待下一個檔案時,Engine 將無法處理來自辨識程序的訊息,也無法接收某些頁面已完成處理的通知。如果您確實需要指定較長的等待時間,GetNextImageFile 方法可以傳回 0。在此情況下,Engine 會繼續處理來自辨識程序的訊息、提供已辨識的影像,並在稍後檢查影像佇列是否為空。如果佇列不是空的 (亦即 IImageSource::IsEmpty 傳回 FALSE) ,Engine 會再次呼叫 GetNextImageFile 方法。不過,如果 GetNextImageFile 方法傳回 0,且已沒有更多頁面可供處理,FineReader Engine 就會將控制權交還給使用者:IBatchProcessor::GetNextProcessedPage 方法將傳回 0。

語法

C++

HRESULT GetNextImageFile( IFileAdapter** Result );

C#

IFileAdapter GetNextImageFile();

Visual Basic .NET

Function GetNextImageFile() As IFileAdapter

參數

Result [out, retval] 指向 IFileAdapter* 指標變數的指標,可用來存取佇列中的下一個影像檔案。

回傳值

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

備註

  • 此方法的用戶端實作必須確保,方法內擲出的所有例外狀況都會被捕捉並妥善處理,且不會外拋到方法之外。若例外狀況外拋到方法之外,可能會導致不可預期的結果 (例如程式終止) 。
  • 如果您的授權包含 Office 格式開啟 模組,您也可以使用此方法來開啟採用支援格式的數位文件。

範例

// 自訂影像來源的範例實作,會維護影像檔案佇列
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 GetNextImageDocument IsEmpty IFileAdapter