Zum Hauptinhalt springen
Dieses Szenario ist nur für Windows verfügbar.
In diesem Szenario wird ABBYY FineReader Engine auf einem „Scancomputer“ verwendet, der Bilder scannt und als Dateien speichert. Dieses Szenario kann in einer frühen Phase der Dokumentverarbeitung als Teil anderer Szenarien verwendet werden, d. h. zum Erstellen elektronischer Versionen von Dokumenten für die weitere Verarbeitung. Einsatzbeispiele sind das Scannen von Dokumenten zu Archivierungszwecken, das Erstellen bearbeitbarer Versionen von Dokumenten und das Extrahieren bestimmter Daten aus Dokumenten. Papierdokumente werden gescannt, und die Bilder werden in einem elektronischen Format gespeichert. So entstehen hochwertige elektronische Versionen Ihrer gedruckten Dokumente. Dokumente können die folgenden Verarbeitungsstufen durchlaufen:
  1. Scannen Dokumente können über eine der beiden von Scannern bereitgestellten Scan-Schnittstellen (TWAIN oder WIA), über die eigene Scan-Schnittstelle von ABBYY oder ohne Scan-Schnittstelle gescannt werden.
  2. Vorverarbeitung gescannter Bilder Nach dem Scannen können die Bilder vorverarbeitet werden. Die Vorverarbeitung umfasst das Entfernen von Bildrauschen, die Korrektur verzerrter Textzeilen, die Farbinvertierung, das Entfernen schwarzer Ränder sowie die Korrektur der Bildausrichtung oder Auflösung. Doppelseiten können in zwei separate Bilder aufgeteilt werden. Verarbeitete Bilder können in verschiedenen Bildformaten wie JPEG, TIFF oder BMP gespeichert werden.

Implementierung des Szenarios

Im Folgenden finden Sie eine ausführliche Beschreibung der empfohlenen Vorgehensweise für den Einsatz von ABBYY FineReader Engine 12 in diesem Szenario. In der vorgeschlagenen Szenarioimplementierung entfällt die Phase der Bildvorbereitung. Hinweise zur Implementierung der Bildvorbereitung finden Sie weiter unten unter Zusätzliche Optimierung.
Um mit ABBYY FineReader Engine zu beginnen, müssen Sie das Engine-Objekt erstellen. Das Engine-Objekt ist das oberste Objekt in der Hierarchie der ABBYY FineReader Engine-Objekte und stellt verschiedene globale Einstellungen, einige Verarbeitungsmethoden sowie Methoden zum Erstellen anderer Objekte bereit.Zum Erstellen des Engine-Objekts können Sie die Funktion InitializeEngine verwenden. Siehe auch andere Möglichkeiten zum Laden des Engine-Objekts (Win).

C#

ABBYY FineReader Engine stellt ein ScanManager-Objekt zur Verwaltung der Scanquellen bereit. Die Eigenschaft ScanSources dieses Objekts ermöglicht den Zugriff auf die Liste aller verfügbaren Scanner, während die Methode FindScanSources es Ihnen erlaubt, Scanner nach dem bereitgestellten API-Typ und dem gewünschten Benutzeroberflächentyp zum Festlegen der Scanoptionen auszuwählen.Um die Dateien zu scannen und auf dem Datenträger zu speichern, können Sie eine der beiden folgenden Methoden des ScanSource-Objekts verwenden: die Methode Scan, die erst zurückkehrt, wenn der Scanvorgang abgeschlossen ist, und die Methode BeginScan, die den asynchronen Scanvorgang startet und sofort zurückkehrt.Sie können die Schnittstelle IScanCallback implementieren und damit Benachrichtigungen über den Fortschritt des Scanvorgangs erhalten.Über die ABBYY FineReader Engine 12 API sind folgende Parameter zugänglich: Helligkeit, Farbe, Auflösung, Bildkomprimierungstyp, Bildrotationswinkel, Größe des Scanbereichs, Duplex-Scanmodus, automatischer Einzugsmodus, eine Pause zwischen den Seiten und weitere. Die Scan-Parameter werden über die Eigenschaft ScanSettings des ScanSource-Objekts festgelegt. Diese Eigenschaft ist erforderlich, um auf das Objekt ScanSourceSettings zuzugreifen, das wiederum den Zugriff auf die Scan-Einstellungen einer Quelle ermöglicht.So scannen Sie die Bilder synchron:
  1. Erstellen Sie ein ScanManager-Objekt. Über den Eingabeparameter der Methode CreateScanManager können Sie festlegen, ob Scanprotokolle geschrieben werden.
  2. Wählen Sie die Scanquelle mit der FindScanSources-Methode des ScanManager-Objekts aus und geben Sie dabei den API- und UI-Typ an, der vom Scanner unterstützt werden soll.
  3. Wenn Sie festlegen, dass dem Benutzer kein Dialogfeld zum manuellen Einstellen der Scanoptionen angezeigt wird, konfigurieren Sie die Scanoptionen über die Eigenschaft ScanSettings der ausgewählten ScanSource. Wählen Sie die passenden Werte für Helligkeit, Auflösung und die übrigen Parameter in den entsprechenden Eigenschaften des Objekts ScanSourceSettings aus. Über die Eigenschaft Capabilities von ScanSource können Sie prüfen, welche Einstellungen für diesen Scanner verfügbar sind.
  4. Geben Sie den Namen des Ordners an, in dem gescannte Seiten gespeichert werden. Der Ordnername sollte eine BSTR-Variable sein, beispielsweise ScanFolder.
  5. Führen Sie die Scan-Methode des ScanSource-Objekts aus und geben Sie als Parameter den Typ des Dialogfelds an, das dem Benutzer angezeigt werden soll (übergeben Sie die Konstante SSUIT_None, damit kein Dialogfeld angezeigt wird), sowie den ScanFolder-Pfad zum Ordner mit den Ergebnissen.
  6. Die Bilddateinamen werden von dieser Methode als StringsCollection-Objekt zurückgegeben. Sie können die Bilddateinamen aus diesem StringsCollection-Objekt abrufen und die Dateien anschließend wie normale Bilddateien verarbeiten.
So scannen Sie die Bilder asynchron:
  1. Erstellen Sie ein Objekt, das die Schnittstelle IScanCallback implementiert. Bei asynchronen Scanvorgängen sind Benachrichtigungen über die Callback-Schnittstelle sehr nützlich.
  2. Erstellen Sie ein ScanManager-Objekt. Über den Eingabeparameter der Methode CreateScanManager können Sie angeben, ob Scanprotokolle geschrieben werden sollen.
  3. Wählen Sie die Scanquelle mit der Methode FindScanSources des ScanManager-Objekts aus und geben Sie dabei den API- und UI-Typ an, der vom Scanner unterstützt werden muss.
  4. Wenn Sie kein Dialogfeld anzeigen möchten, in dem der Benutzer die Scaneinstellungen selbst festlegen kann, passen Sie die Scaneinstellungen mithilfe der Eigenschaft ScanSettings der ausgewählten ScanSource an. Wählen Sie die passenden Werte für Helligkeit, Auflösung und die anderen Parameter in den entsprechenden Eigenschaften des ScanSourceSettings-Objekts aus. Sie können über die Eigenschaft Capabilities der ScanSource prüfen, welche Einstellungen für diesen Scanner verfügbar sind.
  5. Geben Sie den Namen des Ordners an, in dem gescannte Seiten gespeichert werden. Der Ordnername sollte eine BSTR-Variable sein, z. B. ScanFolder.
  6. Rufen Sie die Methode BeginScan des ScanSource-Objekts auf und übergeben Sie als Parameter den Typ des Dialogfelds, das dem Benutzer angezeigt werden soll (übergeben Sie die Konstante SSUIT_None, damit kein Dialogfeld angezeigt wird), sowie den ScanFolder-Pfad zum Ordner mit den Ergebnissen. Außerdem müssen Sie den Zeiger auf das von Ihnen erstellte Callback-Objekt übergeben.
  7. Der Pfad zur Bilddatei wird mit der Benachrichtigung OnImageScanned der Schnittstelle IScanCallback zurückgegeben; der Abschluss des Vorgangs wird durch die Benachrichtigung OnScanComplete signalisiert. Da Sie die Implementierung dieser Methoden bereitstellen, können Sie festlegen, was in jeder dieser Situationen geschehen soll. Wenn Sie beispielsweise den Pfad zu einer Bilddatei erhalten, können Sie damit wie mit jeder anderen Datei auf der Festplatte arbeiten und sie wie gewohnt zur Verarbeitung mit FineReader Engine laden.
Bis der Scanvorgang abgeschlossen ist und die Benachrichtigung OnScanComplete eingegangen ist, können Sie BeginScan oder Scan nicht erneut ausführen, auch nicht für einen anderen Scanner. Der Vorteil des asynchronen Scannens besteht nicht darin, dass Sie mehrere Scanvorgänge gleichzeitig ausführen können, sondern darin, dass Sie die bereits empfangenen Bilder verarbeiten können, während neue Bilder gescannt werden.
Hier ist ein Beispielcode für das asynchrone Scanning-Szenario:

C#

Nachdem Sie die Arbeit mit ABBYY FineReader Engine abgeschlossen haben, müssen Sie das Engine-Objekt entladen. Verwenden Sie dazu die exportierte Funktion DeinitializeEngine.

C#

Erforderliche Ressourcen

Sie können die Datei FREngineDistribution.csv verwenden, um automatisch eine Liste der Dateien zu erstellen, die für die Funktionsfähigkeit Ihrer Anwendung erforderlich sind. Wählen Sie für die Verarbeitung in diesem Szenario in Spalte 5 (RequiredByModule) die folgenden Werte aus: Core Core.Resources Opening Opening, Processing Opening.Scanning Wenn Sie das Standardszenario ändern, passen Sie die erforderlichen Module entsprechend an. Sie müssen außerdem die Oberflächensprachen, Erkennungssprachen und alle zusätzlichen Funktionen angeben, die Ihre Anwendung verwendet (z. B. Processing.OCR.CJK, wenn Sie Texte in CJK-Sprachen erkennen müssen). Weitere Einzelheiten finden Sie unter Working with the FREngineDistribution.csv File.

Zusätzliche Optimierung

Dies sind die Abschnitte der Hilfedatei, in denen Sie weitere Informationen zum Einrichten der Parameter für die verschiedenen Verarbeitungsstufen finden:
  • Dokumententrennung
    • In diesem Szenario müssen Sie den eingehenden Bildstrom möglicherweise zu Dokumenten gruppieren. Beispielsweise kennen Sie eventuell die Seitenanzahl jedes Dokuments oder stellen sicher, dass sich zwischen der letzten Seite des ersten Dokuments und der ersten Seite des nächsten Dokuments Trennseiten mit Barcodes befinden. Weitere Informationen finden Sie im Szenario zur Barcode-Erkennung.

Siehe auch

Implementierung grundlegender Anwendungsszenarien