Pular para o conteúdo principal
Este método é implementado no FRE para Linux e Windows.
Este método é implementado no lado do cliente. O método retorna o próximo documento de imagem da fila de processamento de imagens da fonte.
No Windows, este método deve ser usado somente se você abrir imagens já carregadas na memória — por exemplo, usando os métodos OpenBitmap ou OpenDib do objeto Engine. Se você obtiver imagens de arquivos em disco, implemente GetNextImageFile.
Uma implementação do método GetNextImageDocument pode incluir um tempo de espera pelo próximo documento de imagem. No entanto, não recomendamos implementar tempos de espera longos, pois o FineReader Engine não é multithread. Enquanto aguarda o próximo documento, o Engine não poderá processar mensagens dos processos de reconhecimento nem receber notificações sobre a conclusão do processamento de páginas. Se você realmente precisar especificar um tempo de espera longo, o método GetNextImageDocument poderá retornar 0. Nesse caso, o Engine continuará processando mensagens dos processos de reconhecimento e fornecendo imagens reconhecidas e, após algum tempo, verificará se a fila de imagens está vazia. Se a fila não estiver vazia (isto é, se IImageSource::IsEmpty retornar FALSE), o Engine chamará o método GetNextImageDocument novamente. No entanto, se o método GetNextImageDocument retornar 0 e não houver mais páginas para processar, o FineReader Engine retornará o controle ao usuário: o método IBatchProcessor::GetNextProcessedPage retornará 0.
  • Todos os objetos ImageDocument na fila devem permanecer válidos até o fim do processamento. Para o funcionamento correto, os objetos ImageDocument devem ser criados por meio do objeto Engine. Se forem criados por meio do objeto FRDocument, poderá ocorrer um erro devido à destruição do objeto FRDocument durante a chamada ao método GetNextImageDocument.
  • Como o método é implementado no lado do cliente, há as seguintes restrições:
    • todos os arquivos protegidos por senha devem ser abertos manualmente no lado do cliente;
    • os atributos especificados no objeto PrepareImageMode durante a inicialização do objeto BatchProcessor não afetarão os objetos ImageDocument na fila.

Sintaxe

C++

HRESULT GetNextImageDocument( IImageDocument** Result );

C#

IImageDocument GetNextImageDocument();

Visual Basic .NET

Function GetNextImageDocument() As IImageDocument

Parâmetros

Result [out, retval] Um ponteiro para a variável de ponteiro IImageDocument* que dá acesso ao próximo documento de imagem na fila.

Valores de retorno

[Apenas C++] Se este método retornar um valor diferente de S_OK, isso indica que ocorreu um erro no lado do cliente.

Observações

A implementação do cliente desse método deve garantir que todas as exceções lançadas dentro do método sejam capturadas e tratadas, e que nenhuma exceção seja propagada para fora do método. A propagação de uma exceção para fora do método pode levar a resultados imprevisíveis (como o encerramento do programa).

Exemplos

// Implementação de exemplo de uma origem de imagem personalizada que mantém uma fila de arquivos de imagem
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
{
    ...
}

Veja também

IImageSource GetNextImageFile IsEmpty ImageDocument