Zum Hauptinhalt springen
Dieses Objekt ist in FRE für Linux und Windows implementiert.
Dies ist ein Prozessorobjekt, das Eingabebilder in erkannte Seiten (FRPage-Objekte) umwandelt. Bei der Initialisierung des Prozessors werden asynchrone Erkennungsprozesse gestartet und konfiguriert. Anschließend bezieht der Prozessor Bilddateien aus einer benutzerdefinierten Bildquelle. Für jede Seite einer Bilddatei wird eine neue Verarbeitungsaufgabe erstellt und an einen der Erkennungsprozesse übergeben. Wenn alle Aufgaben für eine Datei zur Verarbeitung übergeben wurden, aber noch nicht alle Erkennungsprozesse ausgelastet sind, wird die nächste Bilddatei aus der Bildwarteschlange der Quelle entnommen und zur Verarbeitung übergeben. Dies wird so lange fortgesetzt, bis die erste Bildseite konvertiert und an den Benutzer übergeben wurde. Die Seiten werden dem Benutzer in der Reihenfolge zurückgegeben, in der sie aus der Bildquelle entnommen wurden. Gehen Sie wie folgt vor, um die Verarbeitung mit dem Batch Processor zu organisieren:
  1. Implementieren Sie die Schnittstellen IImageSource und IFileAdapter, die Zugriff auf die Bildquelle und die darin enthaltenen Dateien bereitstellen.
  2. [optional] Implementieren Sie die Schnittstelle IAsyncProcessingCallback, um die Verarbeitung zu steuern. Mit den Methoden dieser Schnittstelle können Sie Fehler behandeln und/oder die Verarbeitung abbrechen.
  3. Rufen Sie die Methode CreateBatchProcessor des Objekts Engine auf, um das BatchProcessor-Objekt zu erhalten.
  4. Verwenden Sie die Eigenschaft PageFlushingPolicy, um den Modus für die Arbeit mit Dokumentseiten im Speicher festzulegen.
  5. Rufen Sie die Methode Start auf, um den Prozessor zu initialisieren und asynchrone Erkennungsprozesse zu starten. In dieser Methode können Sie die Bildquelle und die Verarbeitungseinstellungen angeben.
  • Das BatchProcessor-Objekt kann nicht wiederverwendet werden. Wiederholte Aufrufe der Methode Start führen zu Fehlern.
  • Erstellen und verwenden Sie nicht mehrere Batch Processors gleichzeitig, da dies zu Verwechslungen bei der Seitenverarbeitung führen kann.
  1. Rufen Sie die Methode GetNextProcessedPage in einer Schleife auf, bis die Methode 0 zurückgibt. Das bedeutet, dass sich keine Bilder mehr in der Quelle befinden und alle verarbeiteten Bilder an den Benutzer zurückgegeben wurden.
Die von der Methode GetNextProcessedPage zurückgegebene Seite existiert bis zum nächsten Aufruf dieser Methode. Wenn Sie diese Seite daher speichern möchten, müssen Sie sie entweder mit den Methoden des Objekts FRPage speichern oder sie mit der Methode IFRDocument::AddPage zu einem vorhandenen Dokument hinzufügen, BEVOR die Methode GetNextProcessedPage das nächste Mal aufgerufen wird.

Eigenschaften

NameTypBeschreibung
ApplicationEngine, nur lesbarGibt das Engine-Objekt zurück.
PageFlushingPolicyPageFlushingPolicyEnumGibt an, ob die Objekte ImageDocument und Layout für die entsprechenden Seiten entladen und auf der Festplatte gespeichert werden sollen, wenn keine Verweise mehr auf diese Objekte vorhanden sind. <Note> Unter Linux werden die ImageDocument- und Layout-Objekte für nicht verwendete Seiten nicht auf der Festplatte gespeichert, wenn diese Eigenschaft auf PFP_KeepInMemory gesetzt ist. </Note> <Note> Verwenden Sie unter Windows zum Entladen und Speichern der ImageDocument- und Layout-Objekte für einzelne Seiten des Dokuments auf der Festplatte die Methode IFRPage::Flush für die entsprechenden Seiten. </Note> Standardmäßig ist diese Eigenschaft auf PFP_Auto gesetzt.

Methoden

NameBeschreibung
GetNextProcessedPageFührt die Verarbeitung im Hintergrund fort, bis das nächste erkannte Bild verfügbar ist.
ProcessPageAsyncErmöglicht es Ihnen, die Verarbeitung einer Seite mit anderen Parametern zu wiederholen. Die Seite kann an den Anfang oder das Ende der Verarbeitungswarteschlange gesetzt werden.
StartBereitet den Batch Processor für die Verarbeitung vor. Die Methode startet asynchrone Erkennungsprozesse und legt die Bildquelle sowie die Verarbeitungseinstellungen fest.

Ausgabeparameter

Dieses Objekt ist der Ausgabeparameter der Methode CreateBatchProcessor des Engine-Objekts.

Beispiele

// Batch Processor erstellen
FREngine.IBatchProcessor batchProcessor = engine.CreateBatchProcessor();
FREngine.IFRDocument document = engine.CreateFRDocument();
// Prozessor initialisieren
FREngine.IImageSource imageSource = new CImageSource; // die Klasse wird vom Benutzer implementiert
batchProcessor.PageFlushingPolicy = FREngine.PageFlushingPolicyEnum.PFP_KeepInMemory;
batchProcessor.Start( imageSource, null, null, null );
// Verarbeitung starten
while( true ) {
 FREngine.IFRPage page = batchProcessor.GetNextProcessedPage();
 if( page == null ) {
  break; // es sind keine weiteren Seiten vorhanden, Verarbeitung beendet
 }
 // etwas mit der Seite machen
 ...
 document.AddPage( page );
}
Dieses Objekt wird in den folgenden Codebeispielen verwendet: BatchProcessing und in den Demo-Tools: BatchProcessingRecognition.

Siehe auch

Parallelverarbeitung mit ABBYY FineReader Engine IImageSource