Speichern von OCR-Ergebnissen als hOCR-HTML in C# mit IronOCR
Mit IronOCR können Entwickler OCR-Ergebnisse als hOCR-HTML-Dateien speichern, indem sie RenderHocr auf "true" setzen und die Methoden SaveAsHocrFile oder SaveAsHocrString verwenden, wodurch das Textlayout und die Zeichenkoordinaten im strukturierten HTML-Format erhalten bleiben.
Schnellstart: OCR-Ausgabe als hOCR-HTML-Datei speichern
Aktivieren Sie die hOCR-Rendering-Funktion und exportieren Sie die Ergebnisse mit einer einzigen Konfiguration und einem einzigen Methodenaufruf direkt in eine HTML-Datei.
-
Installieren Sie IronOCR mit NuGet Package Manager
PM > Install-Package IronOcr -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
var hocr = new IronTesseract { Configuration = { RenderHocr = true } }.Read(new OcrInput("image.png")).SaveAsHocrString(); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronOCR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Minimaler Arbeitsablauf (5 Schritte)
- Laden Sie eine C#-Bibliothek herunter, um Ergebnisse als hOCR in einer HTML-Datei zu speichern
- Bereiten Sie das Zielbild und das PDF-Dokument vor
- Setzen Sie die Eigenschaft RenderHocr auf "true"
- Verwenden Sie die
SaveAsHocrFileMethode, um eine HTML-Datei auszugeben - Verwenden Sie die
SaveAsHocrStringMethode, um eine HTML-Zeichenkette auszugeben
Was ist hOCR und wozu dient es?
hOCR, was für "HTML-based OCR" steht, ist ein Dateiformat, das verwendet wird, um die Ergebnisse der optischen Zeichenerkennung (OCR) in strukturierter Form darzustellen. hOCR-Dateien sind in HTML geschrieben und bieten eine Möglichkeit, erkannten Text, Layoutinformationen und die Koordinaten jedes erkannten Zeichens innerhalb eines Bildes oder Dokuments zu speichern. Dieses strukturierte Format macht hOCR besonders wertvoll für Anwendungen, die Textpositionsdaten benötigen, wie beispielsweise Dokumentenindexierung, Barrierefreiheits-Tools und erweiterte Suchimplementierungen.
Das hOCR-Format ist für Entwickler unverzichtbar, die Anwendungen erstellen, die nicht nur erkennen müssen, welcher Text vorhanden ist, sondern auch, wo dieser Text im Originaldokument erscheint. Diese räumlichen Informationen ermöglichen Funktionen wie das Hervorheben von Text zum Debuggen, das Erstellen anklickbarer Überlagerungen auf Originalbildern und die Beibehaltung der Dokumentlayout-Integrität bei der Konvertierung gescannter Dokumente in barrierefreie Formate. Für Enterprise-Anwendungen, die gescannte Dokumente verarbeiten, bildet hOCR die Grundlage für fortschrittliche Workflows zur Dokumentenanalyse und -extraktion.
Wie exportiere ich OCR-Ergebnisse als hOCR-Dateien?
Um das Ergebnis als hOCR zu exportieren, aktivieren Sie zunächst die Eigenschaft Configuration.RenderHocr, indem Sie sie auf "true" setzen. Nachdem Sie das OcrResult-Objekt über die Methode Read abgerufen haben, verwenden Sie die Methode SaveAsHocrFile, um das OCR-Ergebnis als HTML zu exportieren. Diese Methode gibt eine HTML-Datei aus, die das Leseergebnis der Eingabedokumente enthält. Der folgende Code veranschaulicht die Verwendung anhand der folgenden -Datei.
:path=/static-assets/ocr/content-code-examples/how-to/html-export-export-html.cs
using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Enable render as hOCR
ocrTesseract.Configuration.RenderHocr = true;
// Add image
using var imageInput = new OcrImageInput("Potter.tiff");
imageInput.Title = "Html Title";
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
// Export as HTML
ocrResult.SaveAsHocrFile("result.html");
Imports IronOcr
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Enable render as hOCR
ocrTesseract.Configuration.RenderHocr = True
' Add image
Dim imageInput = New OcrImageInput("Potter.tiff")
imageInput.Title = "Html Title"
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Export as HTML
ocrResult.SaveAsHocrFile("result.html")
Die OcrInput-Klasse bietet umfangreiche Optionen zur Vorbereitung von Bildern vor der OCR-Verarbeitung. Sie können Filter anwenden, relevante Bereiche festlegen und verschiedene Eingabeformate verarbeiten, darunter mehrseitige TIFF-Dateien. Bei der Arbeit mit der PDF-OCR-Textextraktion lassen sich dieselben hOCR-Exportmethoden nahtlos anwenden.
Warum ist die Einstellung von RenderHocr wichtig?
Durch Setzen der Eigenschaft RenderHocr auf "true" wird IronOCR angewiesen, während des OCR-Prozesses die erforderliche hOCR-Struktur zu generieren. Ohne diese Konfiguration erzeugen die Methoden SaveAsHocrFile und SaveAsHocrString keine korrekt formatierte hOCR-Ausgabe mit Beibehaltung des Layouts. Diese Konfiguration muss vor dem Aufruf der Methode Read festgelegt werden, da sie Einfluss darauf hat, wie die Tesseract-Engine die Ausgabedaten verarbeitet und strukturiert.
Das hOCR-Format bewahrt wichtige Metadaten, darunter:
- Begrenzungsrahmen auf Zeichenebene
- WORD-Konfidenzwerte
- Zeilen- und Absatzstruktur
- Seitenabmessungen und DPI-Informationen
- Schriftmerkmale, sofern erkennbar
Diese Metadaten sind besonders nützlich bei der Implementierung von Computer-Vision-Workflows oder beim Aufbau von Systemen, die die Dokumentstruktur über die einfache Textextraktion hinaus verstehen müssen.
Welche Dateitypen unterstützen den hOCR-Export?
IronOCR unterstützt den hOCR-Export aus verschiedenen Bildformaten, darunter TIFF, PNG, JPEG, BMP und GIF. PDF-Dokumente können ebenfalls verarbeitet und als hOCR exportiert werden, wobei die Text- und Layoutinformationen jeder Seite in der HTML-Struktur erhalten bleiben. Die Bibliothek verarbeitet sowohl einseitige Bilder als auch mehrseitige Dokumente nahtlos.
Für optimale Ergebnisse bei verschiedenen Dateitypen:
- TIFF: Ideal für gescannte Dokumente, unterstützt die Verarbeitung mehrseitiger Dokumente
- PDF: Hervorragend geeignet für gemischte Inhalte (Text und Bilder)
- PNG/JPEG: Am besten geeignet für Fotos oder Screenshots, die OCR erfordern
- BMP: Unkomprimiertes Format, geeignet für hochwertige Scans
Beim Umgang mit speziellen Dokumenttypen wie Reisepässen oder Kfz-Kennzeichen hilft das hOCR-Format dabei, die räumlichen Beziehungen zwischen verschiedenen Textelementen zu bewahren, wodurch es einfacher wird, bestimmte Felder anhand ihrer Position zu extrahieren.
Wie kann ich OCR-Ergebnisse als HTML-Zeichenfolgen exportieren?
Verwenden Sie dasselbe TIFF-Beispielbild und nutzen Sie die Methode SaveAsHocrString, um das OCR-Ergebnis als HTML-Zeichenkette zu exportieren. Diese Methode gibt eine HTML-Zeichenkette zurück.
:path=/static-assets/ocr/content-code-examples/how-to/html-export-export-html-string.cs
// Export as HTML string
string hocr = ocrResult.SaveAsHocrString();
' Export as HTML string
Dim hocr As String = ocrResult.SaveAsHocrString()
Die String-Ausgabe enthält vollständiges hOCR-Markup, das weiterverarbeitet, in Datenbanken gespeichert oder in Webanwendungen integriert werden kann. Dieser Ansatz ist besonders nützlich beim Aufbau durchsuchbarer PDF-Systeme oder bei der Implementierung benutzerdefinierter Lösungen zur Dokumentenindizierung. Für Entwickler, die mit 125 internationalen Sprachen arbeiten, bewahrt das hOCR-Format sprachspezifische Textattribute und Informationen zur Leserichtung.
Wann sollte ich String-Ausgabe anstelle von Dateien verwenden?
Die Ausgabe als Zeichenfolge ist ideal, wenn Sie die hOCR-Daten im Speicher verarbeiten oder bearbeiten, in Webdienste integrieren oder die Ergebnisse in einer Datenbank speichern müssen. Dieser Ansatz vermeidet Abhängigkeiten vom Dateisystem und ermöglicht die dynamische HTML-Generierung für Webanwendungen. Häufige Anwendungsfälle sind unter anderem:
- Web-API-Integration: hOCR-Daten direkt in API-Antworten zurückgeben
- Datenbankspeicherung: Speichern von OCR-Ergebnissen zusammen mit Dokument-Metadaten
- Echtzeitverarbeitung: Verarbeiten Sie Ergebnisse ohne Festplatten-I/O-Overhead
- Cloud Functions: Arbeiten Sie in serverlosen Umgebungen mit eingeschränktem Dateizugriff
- Content-Management-Systeme: OCR-Ergebnisse in bestehende Dokumenten-Workflows integrieren
Bei Anwendungen, die eine Fortschrittsverfolgung erfordern, ermöglicht die String-Ausgabe die sofortige Verarbeitung von Teilergebnissen, sobald diese verfügbar sind. Dies ist besonders vorteilhaft bei der Implementierung einer multithreaded OCR-Verarbeitung, bei der mehrere Dokumente gleichzeitig verarbeitet werden.
Wie wandle ich mehrere Seiten in HTML-Strings um?
Bei der Arbeit mit mehrseitigen Dokumenten fasst SaveAsHocrString alle Seiten zu einer einzigen HTML-Zeichenkette mit korrekten Seitenumbrüchen zusammen. Der Inhalt jeder Seite ist in entsprechende hOCR-Elemente eingebettet, wodurch die Dokumentstruktur und die Seitengrenzen erhalten bleiben.
// Processing multi-page documents
using var multiPageInput = new OcrPdfInput("multi-page-document.pdf");
multiPageInput.Title = "Multi-Page Document";
// Configure for hOCR output
IronTesseract tesseract = new IronTesseract();
tesseract.Co/nfiguration.RenderHocr = true;
// Read all pages
OcrResult result = tesseract.Read(multiPageInput);
// Export as single HTML string with all pages
string fullHocr = result.SaveAsHocrString();
// Or process page by page
foreach (var page in result.Pages)
{
string pageHocr = page.SaveAsHocrString();
// Process individual page hOCR
}
// Processing multi-page documents
using var multiPageInput = new OcrPdfInput("multi-page-document.pdf");
multiPageInput.Title = "Multi-Page Document";
// Configure for hOCR output
IronTesseract tesseract = new IronTesseract();
tesseract.Co/nfiguration.RenderHocr = true;
// Read all pages
OcrResult result = tesseract.Read(multiPageInput);
// Export as single HTML string with all pages
string fullHocr = result.SaveAsHocrString();
// Or process page by page
foreach (var page in result.Pages)
{
string pageHocr = page.SaveAsHocrString();
// Process individual page hOCR
}
Imports IronOcr
' Processing multi-page documents
Using multiPageInput As New OcrPdfInput("multi-page-document.pdf")
multiPageInput.Title = "Multi-Page Document"
' Configure for hOCR output
Dim tesseract As New IronTesseract()
tesseract.Configuration.RenderHocr = True
' Read all pages
Dim result As OcrResult = tesseract.Read(multiPageInput)
' Export as single HTML string with all pages
Dim fullHocr As String = result.SaveAsHocrString()
' Or process page by page
For Each page In result.Pages
Dim pageHocr As String = page.SaveAsHocrString()
' Process individual page hOCR
Next
End Using
Dieser Ansatz funktioniert nahtlos mit PDF-Streams und unterstützt fortgeschrittene Szenarien wie die Verarbeitung bestimmter Seitenbereiche oder die Anwendung unterschiedlicher OCR-Konfigurationen auf verschiedene Seiten.
Tipps zur fortgeschrittenen hOCR-Implementierung
Was sind Best Practices für die hOCR-Ausgabequalität?
Um die Qualität Ihrer hOCR-Ergebnisse zu maximieren, sollten Sie vor der Verarbeitung Bildoptimierungsfilter anwenden:
var input = new OcrImageInput("document.png");
input.DeNoise(); // Remove image noise
input.Deskew(); // Correct image rotation
input.Scale(2); // Upscale for better recognition
IronTesseract ocr = new IronTesseract();
ocr.Co/nfiguration.RenderHocr = true;
var result = ocr.Read(input);
var input = new OcrImageInput("document.png");
input.DeNoise(); // Remove image noise
input.Deskew(); // Correct image rotation
input.Scale(2); // Upscale for better recognition
IronTesseract ocr = new IronTesseract();
ocr.Co/nfiguration.RenderHocr = true;
var result = ocr.Read(input);
Imports IronOcr
Dim input As New OcrImageInput("document.png")
input.DeNoise() ' Remove image noise
input.Deskew() ' Correct image rotation
input.Scale(2) ' Upscale for better recognition
Dim ocr As New IronTesseract()
ocr.Configuration.RenderHocr = True
Dim result = ocr.Read(input)
Bei Scans von geringer Qualität können zusätzliche Vorverarbeitungsschritte die Genauigkeit von hOCR erheblich verbessern. Der Filter-Assistent hilft Ihnen dabei, die optimalen Filterkombinationen für Ihre spezifischen Dokumenttypen zu ermitteln.
Wie unterstützt die hOCR-Struktur die erweiterte Verarbeitung?
Der generierte hOCR-Code entspricht der Standardspezifikation mit verschachtelten div-Elementen, die die Dokumenthierarchie darstellen:
<div class='ocr_page' title='bbox 0 0 2480 3508'>
<div class='ocr_carea' title='bbox 156 114 2324 3395'>
<p class='ocr_par' title='bbox 157 114 2323 164'>
<span class='ocr_line' title='bbox 157 114 2323 164'>
<span class='ocr_word' title='bbox 157 114 294 161'>Hello</span>
<span class='ocr_word' title='bbox 334 119 483 161'>World</span>
</span>
</p>
</div>
</div>
<div class='ocr_page' title='bbox 0 0 2480 3508'>
<div class='ocr_carea' title='bbox 156 114 2324 3395'>
<p class='ocr_par' title='bbox 157 114 2323 164'>
<span class='ocr_line' title='bbox 157 114 2323 164'>
<span class='ocr_word' title='bbox 157 114 294 161'>Hello</span>
<span class='ocr_word' title='bbox 334 119 483 161'>World</span>
</span>
</p>
</div>
</div>
Diese Struktur ermöglicht eine präzise Extraktion von Textpositionen und erweiterte Funktionen zur Dokumentanalyse, was sie für Anwendungen wertvoll macht, die räumliche Textbeziehungen oder die Beibehaltung des Layouts erfordern. Bei der Tabellenextraktion hilft das hOCR-Format dabei, die tabellarische Struktur und die Beziehungen zwischen den Zellen beizubehalten.
Die bbox-Attribute (Bounding Box) enthalten Koordinaten im Format "bbox left top right bottom" und liefern pixelgenaue Positionsdaten für jedes Textelement. Diese Informationen sind entscheidend für:
- Erstellen interaktiver Dokumentenbetrachter mit Textauswahl
- Implementierung von Schwärzungssystemen, die das Layout beibehalten
- Entwicklung von Barrierefreiheits-Tools, die die Lesereihenfolge beibehalten
- Entwicklung von Dokumentenvergleichssystemen
Für Entwickler, die noch detailliertere Konfigurationsoptionen benötigen, bietet der ausführliche Tesseract-Konfigurationsleitfaden erweiterte Einstellungen, die sich auf die Ausgabequalität und -struktur von hOCR auswirken.
RenderHocr
Häufig gestellte Fragen
Was ist hOCR und warum ist es für OCR-Anwendungen nützlich?
hOCR (HTML-basierte OCR) ist ein Dateiformat, das OCR-Ergebnisse in strukturiertem HTML darstellt und sowohl erkannten Text als auch räumliche Informationen wie Zeichenkoordinaten speichert. IronOCR unterstützt den hOCR-Export, der für Anwendungen nützlich ist, die Textpositionsdaten, Dokumentenindizierung, Eingabehilfen und die Erhaltung der Layoutintegrität bei der Verarbeitung gescannter Dokumente benötigen.
Wie kann ich die hOCR-Ausgabe in meiner C# OCR-Anwendung aktivieren?
Um die hOCR-Ausgabe mit IronOCR zu aktivieren, setzen Sie die Eigenschaft Configuration.RenderHocr in Ihrer IronTesseract-Instanz auf true. Dadurch wird IronOCR angewiesen, die OCR-Ergebnisse im hOCR-Format aufzubereiten, so dass Sie sie mit den Methoden SaveAsHocrFile oder SaveAsHocrString exportieren können.
Welche Methoden gibt es für den Export von hOCR-Ergebnissen?
IronOCR bietet zwei Methoden für den Export von hOCR-Ergebnissen: SaveAsHocrFile(), die die Ausgabe direkt in einer HTML-Datei auf der Festplatte speichert, und SaveAsHocrString(), die den hOCR-HTML-Code als String zur weiteren Verarbeitung oder Speicherung in Ihrer Anwendung zurückgibt.
Kann ich OCR-Ergebnisse mit nur einer Codezeile als hOCR exportieren?
Ja, IronOCR ermöglicht den einzeiligen hOCR-Export mit Methodenverkettung. Sie können eine IronTesseract-Instanz mit aktiviertem RenderHocr erstellen, Ihre Eingaben lesen und SaveAsHocrString() aufrufen - alles in einer einzigen Anweisung: var hocr = new IronTesseract { Configuration = { RenderHocr = true } }.Read(new OcrInput("image.png")).SaveAsHocrString();
Welche Art von räumlichen Informationen behält hOCR aus OCR-Ergebnissen bei?
hOCR bewahrt die Layout-Informationen und die Koordinaten jedes erkannten Zeichens im Originalbild oder -dokument. Der hOCR-Export von IronOCR behält diese räumlichen Daten bei und ermöglicht so Funktionen wie die Texthervorhebung für die Fehlersuche, die Erstellung anklickbarer Überlagerungen auf Bildern und das Verständnis, wo der Text im Originaldokument erscheint.
Unterstützt IronOCR mehrere Sprachen?
IronOCR unterstützt mehrere Sprachen und ist damit ein vielseitiges Werkzeug für globale Anwendungen, die Texterkennung in verschiedenen Sprachen erfordern.
Kann IronOCR in bestehende Anwendungen integriert werden?
IronOCR ist darauf ausgelegt, leicht in bestehende Anwendungen mithilfe von C# integriert zu werden, sodass Entwickler OCR-Funktionalität mit minimalem Aufwand zu ihrer Software hinzufügen können.
Was sind die Vorteile der Nutzung von IronOCR für das Dokumentenmanagement?
Die Verwendung von IronOCR für das Dokumentenmanagement rationalisiert den Arbeitsablauf, indem gescannte Dokumente in durchsuchbare und bearbeitbare Texte umgewandelt werden, wodurch der Bedarf an manueller Dateneingabe reduziert und die Zugänglichkeit von Dokumenten verbessert wird.
Wie kann IronOCR die Datenqualität verbessern?
IronOCR verbessert die Datenqualität durch seine fortschrittlichen Erkennungsalgorithmen und Bildkorrekturfunktionen, die sicherstellen, dass der Textextraktionsprozess sowohl zuverlässig als auch genau ist.
Gibt es eine kostenlose Testversion von IronOCR?
Ja, Iron Software bietet eine kostenlose Testversion von IronOCR an, die es den Benutzern ermöglicht, die Funktionen und Fähigkeiten zu testen, bevor sie eine Kaufentscheidung treffen.

