Zum Hauptinhalt springen
Diese Methode ist in FRE für Linux und Windows implementiert.
Diese Methode ist auf der Clientseite implementiert. Sie gibt das nächste Bilddokument aus der Bildverarbeitungswarteschlange der Quelle zurück.
Unter Windows sollte diese Methode nur verwendet werden, wenn Sie Bilder öffnen, die bereits in den Speicher geladen wurden — zum Beispiel mit den Methoden OpenBitmap oder OpenDib des Engine-Objekts. Wenn Sie Bilder aus Dateien auf dem Datenträger beziehen, implementieren Sie GetNextImageFile.
Eine Implementierung der Methode GetNextImageDocument kann eine Wartezeit auf das nächste Bilddokument vorsehen. Wir empfehlen jedoch keine langen Wartezeiten, da FineReader Engine nicht multithreaded ist. Während auf das nächste Dokument gewartet wird, kann die Engine keine Nachrichten aus den Erkennungsprozessen verarbeiten und keine Benachrichtigungen über abgeschlossene Seitenverarbeitung empfangen. Wenn Sie dennoch eine lange Wartezeit angeben müssen, kann die Methode GetNextImageDocument 0 zurückgeben. In diesem Fall verarbeitet die Engine weiterhin Nachrichten aus den Erkennungsprozessen und stellt erkannte Bilder bereit; nach einer Weile prüft sie, ob die Bildwarteschlange leer ist. Wenn die Warteschlange nicht leer ist (d. h. wenn IImageSource::IsEmpty FALSE zurückgibt), ruft die Engine die Methode GetNextImageDocument erneut auf. Gibt die Methode GetNextImageDocument jedoch 0 zurück und sind keine weiteren Seiten mehr zu verarbeiten, gibt FineReader Engine die Steuerung an den Benutzer zurück: Die Methode IBatchProcessor::GetNextProcessedPage gibt 0 zurück.
  • Alle ImageDocument-Objekte in der Warteschlange müssen bis zum Ende der Verarbeitung gültig bleiben. Für einen korrekten Betrieb sollten die ImageDocument-Objekte über das Engine-Objekt erstellt werden. Werden sie über das FRDocument-Objekt erstellt, kann ein Fehler auftreten, weil das FRDocument-Objekt während des Aufrufs der Methode GetNextImageDocument zerstört wird.
  • Da die Methode auf der Clientseite implementiert ist, gelten die folgenden Einschränkungen:
    • alle passwortgeschützten Dateien sollten auf der Clientseite manuell geöffnet werden;
    • die im Objekt PrepareImageMode während der Initialisierung des Objekts BatchProcessor angegebenen Attribute wirken sich nicht auf die ImageDocument-Objekte in der Warteschlange aus.

Syntax

C++

HRESULT GetNextImageDocument( IImageDocument** Result );

C#

IImageDocument GetNextImageDocument();

Visual Basic .NET

Function GetNextImageDocument() As IImageDocument

Parameter

Result [out, retval] Ein Zeiger auf eine Zeigervariable vom Typ IImageDocument*, die Zugriff auf das nächste Bilddokument in der Warteschlange bietet.

Rückgabewerte

[Nur C++] Wenn diese Methode einen anderen Wert als S_OK zurückgibt, bedeutet dies, dass auf Clientseite ein Fehler aufgetreten ist.

Hinweise

Die Implementierung dieser Methode auf Clientseite muss sicherstellen, dass alle innerhalb der Methode ausgelösten Ausnahmen abgefangen und behandelt werden und dass keine Ausnahmen über die Methode hinaus weitergegeben werden. Die Weitergabe einer Ausnahme über die Methode hinaus kann zu unvorhersehbaren Ergebnissen führen (z. B. zur Beendigung des Programms).

Beispiele

// Beispielimplementierung einer benutzerdefinierten Bildquelle, die eine Warteschlange mit Bilddateien verwaltet
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
{
    ...
}

Siehe auch

IImageSource GetNextImageFile IsEmpty ImageDocument