このメソッドは、Linux 版および Windows 版の FRE で実装されています。
このメソッドはクライアント側で実装されます。ソースの画像処理キューから次の画像ファイルを返します。
GetNextImageFile メソッドの実装には、次の画像ファイルを待機する時間を含めることができます。ただし、FineReader Engine はマルチスレッドではないため、長い待機時間を設けることは推奨されません。次のファイルを待機している間、Engine は認識プロセスからのメッセージを処理できず、特定のページが処理済みであることを示す通知も受け取れません。長い待機時間を指定する必要がある場合は、GetNextImageFile メソッドが 0 を返すことがあります。この場合、Engine は認識プロセスからのメッセージ処理と認識済み画像の提供を継続し、しばらくしてから画像キューが空かどうかを確認します。キューが空でない場合 (つまり、IImageSource::IsEmpty が FALSE を返す場合) 、Engine は GetNextImageFile メソッドを再度呼び出します。ただし、GetNextImageFile メソッドが 0 を返し、処理対象のページがもうない場合、FineReader Engine は制御をユーザーに戻します。つまり、IBatchProcessor::GetNextProcessedPage メソッドは 0 を返します。
HRESULT GetNextImageFile( IFileAdapter** Result );
IFileAdapter GetNextImageFile();
Function GetNextImageFile() As IFileAdapter
Result
[out, retval] キュー内の次の画像ファイルにアクセスするための IFileAdapter* ポインター変数へのポインター。
[C++ のみ] このメソッドから S_OK 以外の値が返された場合は、クライアント側でエラーが発生したことを示します。
- このメソッドのクライアント実装では、メソッド内でスローされるすべての例外を必ずキャッチして処理し、例外がメソッドの外部へ伝播しないようにする必要があります。例外がメソッドの外部へ伝播すると、予期しない結果 (プログラムの終了など) を招くおそれがあります。
- お使いのライセンスに Office Formats Opening モジュールが含まれている場合は、このメソッドを使用して、サポートされている形式 のデジタルドキュメントを開くこともできます。
// 画像ファイルのキューを保持するカスタム画像ソースの実装例
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