Wie man Ergebnisse als hOCR in einer HTML-Datei speichert | IronOCR

Speichern von OCR-Ergebnissen als hOCR-HTML in C# mit IronOCR

This article was translated from English: Does it need improvement?
Translated
View the article in English

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.

  1. Installieren Sie IronOCR mit NuGet Package Manager

    PM > Install-Package IronOcr
  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    var hocr = new IronTesseract { Configuration = { RenderHocr = true } }.Read(new OcrInput("image.png")).SaveAsHocrString();
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute, IronOCR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion

    arrow pointer


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 Beispiel-TIFF-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")
$vbLabelText   $csharpLabel

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()
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

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>
HTML

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.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Rezensiert von
Jeff Fritz
Jeffrey T. Fritz
Principal Program Manager - .NET Community Team
Jeff ist außerdem Principal Program Manager für das .NET- und Visual Studio-Team. Er ist der ausführende Produzent der .NET Conf Virtual Conference Series und moderiert ‚Fritz and Friends‘, einen Livestream für Entwickler, der zweimal wöchentlich ausgestrahlt wird. Dort spricht er über Technik und schreibt gemeinsam mit den Zuschauern Code. Jeff schreibt Workshops, Präsentationen und plant Inhalte für die größten Microsoft-Entwicklerveranstaltungen, einschließlich Microsoft Build, Microsoft Ignite, .NET Conf und dem Microsoft MVP Summit.
Bereit anzufangen?
Nuget Downloads 5,888,303 | Version: 2026.5 just released
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package IronOcr
Führen Sie ein Beispiel aus und beobachten Sie, wie Ihr Bild zu durchsuchbarem Text wird.