Saltar al contenido principal
Este método está implementado en FRE para Linux y Windows.
Este método está implementado del lado del cliente. Devuelve el siguiente documento de imagen de la cola de procesamiento de imágenes del origen.
En Windows, este método debe usarse solo si abre imágenes que ya se han cargado en memoria; por ejemplo, mediante los métodos OpenBitmap o OpenDib del objeto Engine. Si obtiene imágenes de archivos del disco, implemente GetNextImageFile.
Una implementación del método GetNextImageDocument puede incluir un tiempo de espera para el siguiente documento de imagen. Sin embargo, no recomendamos implementar tiempos de espera largos, ya que FineReader Engine no es multihilo. Mientras espera el siguiente documento, el Engine no podrá procesar mensajes de los procesos de reconocimiento ni recibir notificaciones de que se ha completado el procesamiento de páginas. Si realmente necesita especificar un tiempo de espera largo, el método GetNextImageDocument puede devolver 0. En este caso, el Engine seguirá procesando mensajes de los procesos de reconocimiento y proporcionando imágenes reconocidas y, al cabo de un tiempo, comprobará si la cola de imágenes está vacía. Si la cola no está vacía (es decir, si IImageSource::IsEmpty devuelve FALSE), el Engine volverá a llamar al método GetNextImageDocument. Sin embargo, si el método GetNextImageDocument devuelve 0 y no hay más páginas que procesar, FineReader Engine devolverá el control al usuario: el método IBatchProcessor::GetNextProcessedPage devolverá 0.
  • Todos los objetos ImageDocument de la cola deben seguir siendo válidos hasta el final del procesamiento. Para garantizar un funcionamiento correcto, los objetos ImageDocument deben crearse mediante el objeto Engine. Si se crean mediante el objeto FRDocument, puede producirse un error porque el objeto FRDocument se destruye durante la llamada al método GetNextImageDocument.
  • Como el método está implementado del lado del cliente, se aplican las siguientes restricciones:
    • todos los archivos protegidos con contraseña deben abrirse manualmente del lado del cliente;
    • los atributos especificados en el objeto PrepareImageMode durante la inicialización del objeto BatchProcessor no afectarán a los objetos ImageDocument de la cola.

Sintaxis

C++

HRESULT GetNextImageDocument( IImageDocument** Result );

C#

IImageDocument GetNextImageDocument();

Visual Basic .NET

Function GetNextImageDocument() As IImageDocument

Parámetros

Result [out, retval] Puntero a una variable de puntero de IImageDocument* que proporciona acceso al siguiente documento de imagen de la cola.

Valores de retorno

[Solo para C++] Si este método devuelve un valor distinto de S_OK, significa que se produjo un error del lado del cliente.

Observaciones

La implementación cliente de este método debe garantizar que todas las excepciones que se produzcan dentro del método se capturen y se gestionen, y que ninguna excepción se propague fuera del método. La propagación de una excepción fuera del método puede dar lugar a resultados impredecibles (como la finalización del programa).

Ejemplos

// Implementación de ejemplo de una fuente de imágenes personalizada que mantiene una cola de archivos de imagen
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
{
    ...
}

Consulte también

IImageSource GetNextImageFile IsEmpty ImageDocument