hOCR

Die hOCR-Format-API

Der hOCR-Format-Reader ermöglicht eine Verarbeitung und Verwendung von OCR-Daten, die im hOCR-Format vorliegen. Dokumente, die in Raster-Formaten vorliegen, können durch Hinzufügen von OCR Informationen beispielsweise durchsuchbar gemacht werden. Der Anwendungsfall geht davon aus, dass die Daten aus der Texterkennung bereits aus anderer Quelle vorliegen; es ist keine eigene Texterkennung in jadice integriert. Andere OCR-Formate als hOCR werden nicht unmittelbar verarbeitet. Es werden nur solche hOCR-Daten unterstützt, die mit Tesseract 3 (ab Version 3.05.00) oder Tesseract 4 (ab Version 4.0.0) erzeugt wurden. Entscheidend für eine korrekte Funktion sind die hOCR-Elemente ocr_page, ocr_carea, ocr_line und ocrx_word. Zusätzliche hOCR-Elemente stellen kein Problem dar und werden ignoriert.

Einlesen von Dokumenten mit OCR Informationen

Um ein jadice Dokument mit OCR-Daten zu erstellen wird üblicherweise zunächst der Basis-Datenstrom (also die Bildinformationen ohne OCR) eingelesen. Danach werden die OCR-Daten als weitere PageSegments auf die existierenden Seiten aufgenommen. Die bekannten Textwerkzeuge können dann wie gewohnt genutzt werden.

Für den Lesevorgang sind die folgenden Dinge zu beachten:

  • Beim Einlesen von hOCR-Dateien muss das Format explizit angegeben werden als Instanz von HocrFormat.

  • Nach dem Einlesen des Datenstroms der Bilddaten muss zur korrekten Zuordnung der OCR-Daten der Target-Index des Readers auf den Anfang des Dokuments zurückgesetzt werden.

Ein Beispiel gibt Beispiel 7.27, „Einlesen von Dokumenten mit OCR Informationen“.

Einlesen mit ResolutionDetector

Über die HocrReaderSettings kann bei Bedarf der ResolutionDetector gesetzt werden. Standardmäßig wird ein Default ResolutionDetector verwendet, der die Auflösung über das PageSegment im DocumentLayer.DEFAULT ermittelt.

Eine eigene ResolutionDetector Implementation kann zum Beispiel bei Bilddaten mit invalider Auflösungsinformation, aber dem Integrator bekannter Auflösung, sinnvoll sein. Es ist stets zu beachten, dass die Auflösungsinformation durch einen Aufruf des ResolutionDetectors bei jeglichem Zugriff auf die Textinformationen verfügbar sind.

Da der Standard ResolutionDetector die Auflösung über das PageSegment im DocumentLayer.DEFAULT ermittelt, muss dieser Layer befüllt sein, bevor die erste Anfrage an den ResolutionDetector erfolgt. Aus diesem Grund werden die OCR Daten typischerweise eingelesen, nachdem das gesamte Hauptdokument eingelesen ist. Wird ein ResolutionDetector verwendet, der keinen Zugriff auf andere PageSegments benötigt, ist die Reihenfolge des Einlesens irrelevant.

Ein Beispiel findet sich unter Beispiel 7.28, „Einlesen mit ResolutionDetector.

[jadice document platform Version 5.5.12.1: Dokumentation für Entwickler. Veröffentlicht: 2021-08-17]