Passer au contenu principal
Cette méthode est implémentée dans FRE pour Linux et Windows.
Cette méthode est implémentée côté client. Elle renvoie le document image suivant de la file d’attente de traitement d’images de la source.
Sous Windows, cette méthode ne doit être utilisée que si vous ouvrez des images déjà chargées en mémoire — par exemple, à l’aide des méthodes OpenBitmap ou OpenDib de l’objet Engine. Si vous récupérez des images à partir de fichiers stockés sur disque, implémentez GetNextImageFile.
L’implémentation de la méthode GetNextImageDocument peut inclure un délai d’attente avant le document image suivant. Toutefois, nous ne recommandons pas d’utiliser des délais d’attente longs, car FineReader Engine n’est pas multithread. Pendant l’attente du document suivant, l’Engine ne pourra pas traiter les messages des processus de reconnaissance ni recevoir les notifications de fin de traitement des pages. Si vous devez malgré tout spécifier un délai d’attente long, la méthode GetNextImageDocument peut renvoyer 0. Dans ce cas, l’Engine continuera à traiter les messages des processus de reconnaissance et à fournir les images reconnues, puis vérifiera au bout d’un certain temps si la file d’attente d’images est vide. Si la file d’attente n’est pas vide (c.-à-d. si IImageSource::IsEmpty renvoie FALSE), l’Engine appellera de nouveau la méthode GetNextImageDocument. Toutefois, si la méthode GetNextImageDocument renvoie 0 et qu’il n’y a plus de pages à traiter, FineReader Engine rendra le contrôle à l’utilisateur : la méthode IBatchProcessor::GetNextProcessedPage renverra 0.
  • Tous les objets ImageDocument de la file d’attente doivent rester valides jusqu’à la fin du traitement. Pour fonctionner correctement, les objets ImageDocument doivent être créés via l’objet Engine. S’ils sont créés via l’objet FRDocument, une erreur peut se produire, car l’objet FRDocument peut être détruit pendant l’appel de la méthode GetNextImageDocument.
  • Comme la méthode est implémentée côté client, les restrictions suivantes s’appliquent :
    • tous les fichiers protégés par mot de passe doivent être ouverts manuellement côté client ;
    • les attributs spécifiés dans l’objet PrepareImageMode lors de l’initialisation de l’objet BatchProcessor n’affecteront pas les objets ImageDocument de la file d’attente.

Syntaxe

C++

HRESULT GetNextImageDocument( IImageDocument** Result );

C#

IImageDocument GetNextImageDocument();

Visual Basic .NET

Function GetNextImageDocument() As IImageDocument

Paramètres

Result [out, retval] Pointeur vers une variable pointeur de type IImageDocument* donnant accès au document image suivant dans la file d’attente.

Valeurs de retour

[C++ uniquement] Si cette méthode renvoie une valeur autre que S_OK, cela indique qu’une erreur s’est produite côté client.

Remarques

L’implémentation du client pour cette méthode doit garantir que toutes les exceptions levées à l’intérieur de la méthode sont interceptées et traitées, et qu’aucune exception n’est propagée en dehors de la méthode. La propagation d’une exception en dehors de la méthode peut entraîner des résultats imprévisibles (par exemple, l’arrêt du programme).

Exemples

// Exemple d'implémentation d'une source d'images personnalisée qui gère une file d'attente de fichiers image
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
{
    ...
}

Voir aussi

IImageSource GetNextImageFile IsEmpty ImageDocument