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

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

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

IronOCR ermöglicht es Entwicklern, OCR-Ergebnisse als hOCR-HTML-Dateien zu speichern, indem sie RenderHocr auf true setzen und die Methoden SaveAsHocrFile oder SaveAsHocrString verwenden, wobei Textlayout und Zeichenkoordinaten im strukturierten HTML-Format erhalten bleiben.

als Überschrift:2(Schnellstart: OCR-Ausgabe als hOCR HTML-Datei speichern)

Aktivieren Sie das hOCR-Rendering und exportieren Sie die Ergebnisse direkt in eine HTML-Datei mit einem Setup und einem Methodenaufruf.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronOCR mit dem NuGet-Paketmanager.

    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 mit der Nutzung von IronOCR in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer


Was ist hOCR und warum sollte man es verwenden?

hOCR, das für "HTML-based OCR" steht, ist ein Dateiformat, das zur Darstellung der Ergebnisse der optischen Zeichenerkennung (OCR) in strukturierter Weise verwendet wird. hOCR-Dateien sind in HTML geschrieben und bieten eine Möglichkeit, erkannten Text, Layoutinformationen und die Koordinaten jedes erkannten Zeichens in einem Bild oder Dokument zu speichern. Dieses strukturierte Format macht hOCR besonders wertvoll für Anwendungen, die Textpositionsdaten benötigen, wie z. B. die Indizierung von Dokumenten, Tools für die Barrierefreiheit und erweiterte Suchimplementierungen.

Das hOCR-Format ist wichtig für Entwickler, die Anwendungen erstellen und nicht nur verstehen 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 zur Fehlersuche, das Erstellen von anklickbaren Overlays auf Originalbildern und die Wahrung der Integrität des Dokumentenlayouts bei der Konvertierung gescannter Dokumente in barrierefreie Formate. Für Unternehmensanwendungen, die gescannte Dokumente verarbeiten, bietet hOCR die Grundlage für fortgeschrittene Workflows zum Verstehen und Extrahieren von Dokumenten.

Wie kann ich OCR-Ergebnisse als hOCR-Dateien exportieren?

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 von der Read-Methode erhalten haben, verwenden Sie die SaveAsHocrFile-Methode, um das OCR-Ergebnis als HTML zu exportieren. Diese Methode gibt eine HTML-Datei aus, die das Leseergebnis der Eingabedokumente enthält. Der untenstehende Code zeigt die Verwendung 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");
$vbLabelText   $csharpLabel

Die Klasse OcrInput bietet umfangreiche Möglichkeiten zur Vorbereitung von Bildern vor der OCR-Verarbeitung. Sie können Filter anwenden, Bereiche von Interesse festlegen und verschiedene Eingabeformate verarbeiten, einschließlich mehrseitiger TIFF-Dateien. Bei der Arbeit mit PDF OCR-Textextraktion werden die gleichen hOCR-Exportmethoden nahtlos angewendet.

Warum ist die Einstellung von RenderHocr wichtig?

Wenn die Eigenschaft RenderHocr auf true gesetzt wird, weist IronOCR an, die erforderliche hOCR-Struktur während des OCR-Prozesses zu erzeugen. Ohne diese Konfiguration erzeugen die Methoden SaveAsHocrFile und SaveAsHocrString keine korrekt formatierte hOCR-Ausgabe unter Beibehaltung des Layouts. Diese Konfiguration muss vor dem Aufruf der Read Methode festgelegt werden, da sie Einfluss darauf hat, wie die Tesseract-Engine die Ausgabedaten verarbeitet und strukturiert.

Das hOCR-Format bewahrt wichtige Metadaten, darunter:

  • Bounding Boxes auf Zeichenebene
  • Wortkonfidenz-Werte
  • Zeilen- und Absatzstruktur
  • Seitenabmessungen und DPI-Informationen
  • Merkmale der Schriftart, sofern erkennbar

Diese Metadaten sind besonders nützlich bei der Implementierung von Computer Vision-Workflows oder beim Aufbau von Systemen, die die Struktur von Dokumenten über die einfache Textextraktion hinaus verstehen müssen.

Welche Dateitypen unterstützen den hOCR-Export?

IronOCR unterstützt den hOCR-Export aus verschiedenen Bildformaten wie 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 mit verschiedenen Dateitypen:

  • TIFF: Ideal für gescannte Dokumente, unterstützt mehrseitige Verarbeitung
  • 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

Bei speziellen Dokumenttypen wie Reisepässen oder Lizenzschildern hilft das hOCR-Format dabei, die räumlichen Beziehungen zwischen verschiedenen Textelementen zu erhalten, so dass es einfacher wird, bestimmte Felder anhand ihrer Position zu extrahieren.

Wie kann ich OCR-Ergebnisse als HTML-Strings exportieren?

Verwenden Sie das gleiche TIFF-Beispielbild und exportieren Sie das OCR-Ergebnis mit der Methode SaveAsHocrString als HTML-String. Diese Methode gibt einen HTML-String 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();
$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 bei der Entwicklung von durchsuchbaren PDF-Systemen oder bei der Implementierung benutzerdefinierter Lösungen zur Indizierung von Dokumenten. 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 String-Ausgabe ist ideal, wenn Sie die hOCR-Daten im Speicher verarbeiten oder manipulieren, mit Webdiensten integrieren oder Ergebnisse in einer Datenbank speichern müssen. Dieser Ansatz vermeidet Abhängigkeiten vom Dateisystem und ermöglicht eine dynamische HTML-Generierung für Webanwendungen. Häufige Anwendungsfälle umfassen:

  • Web-API-Integration: Rückgabe von hOCR-Daten direkt in API-Antworten
  • Datenbankspeicherung: Speichern von OCR-Ergebnissen mit Dokument-Metadaten
  • Echtzeit-Verarbeitung: Verarbeiten Sie Ergebnisse ohne Festplatten-E/A-Overhead
  • Cloud-Funktionen: Arbeiten in serverlosen Umgebungen mit begrenztem Dateizugriff
  • Inhaltsverwaltungssysteme: Integration von OCR-Ergebnissen in bestehende Dokumenten-Workflows

Für Anwendungen, die eine Fortschrittskontrolle erfordern, ermöglicht die String-Ausgabe die sofortige Verarbeitung von Teilergebnissen, sobald diese verfügbar sind. Dies ist besonders bei der Implementierung von Multithreaded OCR-Verarbeitung von Vorteil, wenn mehrere Dokumente gleichzeitig verarbeitet werden.

Wie kann ich mehrere Seiten zu HTML-Strings verarbeiten?

Bei der Arbeit mit mehrseitigen Dokumenten fasst SaveAsHocrString alle Seiten in einer einzigen HTML-Zeichenkette mit korrekter Seitenteilung zusammen. Der Inhalt jeder Seite wird in entsprechende hOCR-Elemente eingebettet, wobei die Dokumentstruktur und die Seitengrenzen beibehalten werden.

// 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.Configuration.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.Configuration.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
 }
$vbLabelText   $csharpLabel

Dieser Ansatz funktioniert nahtlos mit PDF-Streams und unterstützt erweiterte Szenarien wie die Verarbeitung bestimmter Seitenbereiche oder die Anwendung verschiedener OCR-Konfigurationen auf verschiedene Seiten.

Fortgeschrittene Tipps zur hOCR-Implementierung

Was sind die besten Praktiken für die Qualität der hOCR-Ausgabe?

Um die Qualität Ihrer hOCR-Ausgabe 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.Configuration.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.Configuration.RenderHocr = true;
var result = ocr.Read(input);
$vbLabelText   $csharpLabel

Bei geringwertigen Scans können zusätzliche Vorverarbeitungsschritte die hOCR-Genauigkeit erheblich verbessern. Der Filter-Assistent hilft bei der Ermittlung optimaler Filterkombinationen für Ihre spezifischen Dokumenttypen.

Wie unterstützt die hOCR-Struktur die erweiterte Verarbeitung?

Die generierte hOCR folgt 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 Textstellen und erweiterte Funktionen zur Dokumentenanalyse, was sie für Anwendungen, die räumliche Textbeziehungen oder die Erhaltung des Layouts erfordern, wertvoll macht. Bei der Arbeit mit Tabellenextraktion hilft das hOCR-Format, die tabellarische Struktur und die Zellbeziehungen beizubehalten.

Die bbox (Bounding Box)-Attribute enthalten Koordinaten im Format "bbox left top right bottom", die pixelgenaue Positionsdaten für jedes Textelement liefern. Diese Informationen sind wichtig für:

  • Erstellen interaktiver Dokumentenbetrachter mit Textauswahl
  • Implementierung von Redaktionssystemen, die das Layout erhalten
  • Erstellung von Zugänglichkeitswerkzeugen, die die Lesereihenfolge beibehalten
  • Entwicklung von Systemen zum Vergleich von Dokumenten

Für Entwickler, die noch detailliertere Konfigurationsoptionen benötigen, bietet der Tesseract detailed configuration guide erweiterte Einstellungen, die die Qualität und Struktur der hOCR-Ausgabe beeinflussen.

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.

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,299,091 | Version: 2025.12 gerade veröffentlicht