- Scannen
- Vorverarbeitung gescannter Bilder
Implementierung des Szenarios
Schritt 1. Laden von ABBYY FineReader Engine
Schritt 1. Laden von ABBYY FineReader Engine
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#
Schritt 2. Scannen
Schritt 2. Scannen
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:
- Erstellen Sie ein ScanManager-Objekt. Über den Eingabeparameter der Methode CreateScanManager können Sie festlegen, ob Scanprotokolle geschrieben werden.
- 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.
- 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.
- Geben Sie den Namen des Ordners an, in dem gescannte Seiten gespeichert werden. Der Ordnername sollte eine BSTR-Variable sein, beispielsweise ScanFolder.
- 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.
- 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.
- Erstellen Sie ein Objekt, das die Schnittstelle
IScanCallbackimplementiert. Bei asynchronen Scanvorgängen sind Benachrichtigungen über die Callback-Schnittstelle sehr nützlich. - Erstellen Sie ein ScanManager-Objekt. Über den Eingabeparameter der Methode CreateScanManager können Sie angeben, ob Scanprotokolle geschrieben werden sollen.
- 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.
- 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.
- Geben Sie den Namen des Ordners an, in dem gescannte Seiten gespeichert werden. Der Ordnername sollte eine BSTR-Variable sein, z. B. ScanFolder.
- 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.
- Der Pfad zur Bilddatei wird mit der Benachrichtigung
OnImageScannedder SchnittstelleIScanCallbackzurückgegeben; der Abschluss des Vorgangs wird durch die BenachrichtigungOnScanCompletesignalisiert. 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.
C#
Schritt 3. ABBYY FineReader Engine entladen
Schritt 3. ABBYY FineReader Engine entladen
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
Zusätzliche Optimierung
- 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.
