Dieses Thema bezieht sich auf FRE for Windows.
Einbinden der FineReader Engine-Bibliothek in ein Java-Projekt
ABBYY FineReader Engine enthält die Datei com.abbyy.FREngine-%BUILD_ID%.jar, die die Java-Klassenbibliothek für FineReader Engine umfasst. Sie finden sie im IncJava-Ordner. Der Pfad zu dieser Datei kann in der Befehlszeile über den Parameterclasspath sowie in den Projekteinstellungen verschiedener Java-Entwicklungsumgebungen angegeben werden. Beispiel:
Laden und Entladen von FineReader Engine
Sie können die statische Klasse Engine verwenden, um das Engine-Objekt zu laden. Die Klasse Engine stellt Methoden bereit, die den ABBYY FineReader Engine-Funktionen zum Laden und Entladen der Engine entsprechen:Beispielcode
Beispielcode
Beispielcode mit InprocLoader
Beispielcode mit InprocLoader
Beispielcode mit OutprocLoader
Beispielcode mit OutprocLoader
Die Datei com.abbyy.FREngine-%BUILD_ID%.jar ist ein selbstentpackendes Archiv, das bei der ersten Verwendung der FineReader Engine Java API auf Ihrem Rechner entpackt wird. Der Standardordner, in den der Inhalt entpackt wird, ist unter Windows Inc\Java. Wenn Sie einen anderen Ordner verwenden möchten, rufen Sie vor dem Laden der Engine mit einer der oben beschriebenen Methoden die Methode Engine.SetJNIDllFolder auf. Um herauszufinden, welcher Ordner derzeit zum Entpacken des Archivs festgelegt ist, rufen Sie die Methode Engine.GetJNIDllFolder auf.
Einsatz von Engine in mehrthreadigen Java-Anwendungen
Für mehrthreadige Java-Anwendungen können Sie die Klasse EnginesPool verwenden, die eine vollständige Lösung zum Erstellen und Verwalten eines Pools von FineReader Engine-Objekten bietet. Diese Klasse implementiert die Schnittstelle java.lang.Runnable.
Ein Beispiel für die Verwendung der Klasse EnginesPool finden Sie im Codebeispiel EnginesPool.
Fehlerbehandlung
ABBYY FineReader Engine kann Ausnahmen der folgenden Typen auslösen:- java.lang.OutOfMemoryError
- com.abbyy.FREngine.EngineException
Methoden mit Out-Parametern aufrufen
In der ABBYY FineReader Engine API gibt es mehrere Methoden mit Out-Parametern, die nach dem Methodenaufruf einen neuen Wert erhalten und per Referenz übergeben werden müssen. Diese Parameter sind in der Typbibliothek und in den Methodenbeschreibungen in dieser Developer’s Help als [out] oder [in, out] gekennzeichnet. Wenn Sie mit ABBYY FineReader Engine in Java arbeiten, müssen Sie eine spezielle KlasseRef verwenden, um einen Parameter per Referenz zu übergeben. Siehe die folgenden Beispiele.
Beispiel, in dem die Out-Parameter per Referenz an die Methode IFRPage::FindPageSplitPosition übergeben werden:
Beispielcode für Out-Parameter
Beispielcode für Out-Parameter
Beispielcode für In/Out-Parameter
Beispielcode für In/Out-Parameter
Beispielcode für Array-Out-Parameter
Beispielcode für Array-Out-Parameter
Speicherbereinigung
FineReader Engine unterstützt dieAutoCloseable-Schnittstelle, sodass Sie die try-Anweisung verwenden können, um mit den für Objekte reservierten Ressourcen zu arbeiten. Das bedeutet, dass nach Erreichen des Endes des try-Blocks alle zugewiesenen Ressourcen automatisch geschlossen werden, ohne dass Schließmethoden explizit aufgerufen werden müssen. Wir empfehlen, die try-Anweisung für alle Objekte in Ihrem Code zu verwenden (siehe Beispiel unten):
Beispielcode
Beispielcode
- die Methoden LoadImageDocFromMemory und OpenImageFileFromMemory des Engine-Objekts
- die von vielen Objekten bereitgestellte Methode LoadFromMemory
- die Methode AddImageFileFromMemory des FRDocument-Objekts
- die Methode AddFromMemory des PDFAttachments-Objekts
Arbeiten mit Aufzählungen
Bei Methoden und Eigenschaften, die eine Kombination von Aufzählungskonstanten akzeptieren, muss derint-Wert an die Methode bzw. Eigenschaft übergeben werden. Um den int-Wert einer Aufzählungskonstante zu ermitteln, verwenden Sie die Methode getValue, die von allen Aufzählungen unterstützt wird.
Hier ist Beispielcode, der zeigt, wie die Eigenschaft BwPictureFormats des Objekts PDFPictureCompressionParams festgelegt wird:
