Comment enregistrer des résultats en tant que hOCR dans un fichier HTML | IronOCR

Enregistrez les résultats de l'OCR sous forme de HTML hOCR en C# ; avec IronOCR

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

IronOcr permet aux développeurs d'enregistrer les résultats de l'OCR sous forme de fichiers HTML hOCR en définissant RenderHocr sur true et en utilisant les méthodes SaveAsHocrFile ou SaveAsHocrString, en préservant la mise en page du texte et les coordonnées des caractères dans un format HTML structuré.

Démarrage rapide : Enregistrer la sortie OCR au format HTML hOCR

Activez le rendu hOCR et exportez les résultats directement vers un fichier HTML en une seule configuration et un seul appel de méthode.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronOCR avec le gestionnaire de packages NuGet

    PM > Install-Package IronOcr

  2. Copiez et exécutez cet extrait de code.

    var hocr = new IronTesseract { Configuration = { RenderHocr = true } }.Read(new OcrInput("image.png")).SaveAsHocrString();
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronOCR dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer


Qu'est-ce que hOCR et pourquoi l'utiliser?

hOCR, qui signifie " OCR basé sur HTML ", est un format de fichier utilisé pour représenter les résultats de la reconnaissance optique de caractères (OCR) de manière structurée. les fichiers hOCR sont écrits en HTML et permettent de stocker le texte reconnu, les informations de mise en page et les coordonnées de chaque caractère reconnu dans une image ou un document. Ce format structuré rend hOCR particulièrement utile pour les applications nécessitant des données de position de texte, telles que l'indexation de documents, les outils d'accessibilité et les implémentations de recherche avancée.

Le format hOCR est essentiel pour les développeurs d'applications qui ont besoin de comprendre non seulement le texte présent, mais aussi l'emplacement de ce texte dans le document original. Ces informations spatiales permettent des fonctions telles que le surlignage de texte pour le débogage, la création de superpositions cliquables sur les images originales et le maintien de l'intégrité de la mise en page des documents lors de la conversion de documents numérisés dans des formats accessibles. Pour les applications d'entreprise traitant des documents numérisés, hOCR constitue la base d'une compréhension avancée des documents et de flux de travail d'extraction.

Comment exporter les résultats de l'OCR sous forme de fichiers hOCR?

<TODO : Ajouter une image ici -->

Pour exporter le résultat en tant que hOCR, activez d'abord la propriété Configuration.RenderHocr en la définissant sur true. Après avoir obtenu l'objet OcrResult à partir de la méthode Read, utilisez la méthode SaveAsHocrFile pour exporter le résultat de l'OCR au format HTML. Cette méthode produit un fichier HTML contenant le résultat de la lecture des documents d'entrée. Le code ci-dessous illustre son utilisation avec l' exemple de fichier TIFF suivant.

: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

La classe OcrInput offre des options étendues pour la préparation des images avant le traitement OCR. Vous pouvez appliquer des filtres, spécifier des régions d'intérêt et gérer divers formats d'entrée, notamment des fichiers TIFF multipages. Lorsque vous travaillez avec l'extraction de texte OCR au format PDF, les mêmes méthodes d'exportation hOCR s'appliquent de manière transparente.

Pourquoi le réglage de RenderHocr est-il important?

La définition de la propriété RenderHocr sur true indique à IronOcr de générer la structure hOCR nécessaire au cours du processus d'OCR. Sans cette configuration, les méthodes SaveAsHocrFile et SaveAsHocrString ne produiront pas une sortie hOCR correctement formatée avec préservation de la mise en page. Cette configuration doit être définie avant d'appeler la méthode Read , car elle influe sur la manière dont le moteur Tesseract traite et structure les données de sortie.

Le format hOCR préserve les métadonnées essentielles, notamment :

  • Boîtes de délimitation au niveau des caractères
  • Score de confiance des mots
  • Structure des lignes et des paragraphes
  • Dimensions des pages et informations DPI
  • Caractéristiques des polices de caractères lorsqu'elles sont détectables

Ces métadonnées sont particulièrement utiles lors de la mise en œuvre de flux de travail de vision artificielle ou de la construction de systèmes qui doivent comprendre la structure des documents au-delà de la simple extraction de texte.

Quels sont les types de fichiers compatibles avec hOCR Export?

IronOcr prend en charge l'exportation hOCR à partir de divers formats d'image, notamment TIFF, PNG, JPEG, BMP et GIF. Les documents PDF peuvent également être traités et exportés en tant que hOCR, les informations relatives au texte et à la mise en page de chaque page étant conservées dans la structure HTML. La bibliothèque gère aussi bien les images d'une seule page que les documents de plusieurs pages de manière transparente.

Pour des résultats optimaux avec différents types de fichiers :

  • TIFF : idéal pour les documents numérisés, prend en charge le traitement de plusieurs pages
  • PDF : Excellent pour le contenu mixte (texte et images)
  • PNG/JPEG : idéal pour les photographies ou les captures d'écran nécessitant une reconnaissance optique de caractères (OCR)
  • BMP : Format non compressé adapté aux numérisations de haute qualité

Lorsqu'il s'agit de types de documents spécialisés tels que passports ou plaques d'immatriculation, le format hOCR permet de préserver les relations spatiales entre les différents éléments du texte, ce qui facilite l'extraction de champs spécifiques en fonction de leur emplacement.

Comment exporter les résultats de l'OCR sous forme de chaînes HTML?

<TODO : Ajouter une image ici -->

En utilisant le même échantillon d'image TIFF, utilisez la méthode SaveAsHocrString pour exporter le résultat de l'OCR sous la forme d'une chaîne HTML. Cette méthode renvoie une chaîne HTML.

: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

La chaîne de sortie contient un balisage hOCR complet qui peut être traité ultérieurement, stocké dans des bases de données ou intégré dans des applications web. Cette approche est particulièrement utile lors de la création de systèmes PDF consultables ou de la mise en œuvre de solutions d'indexation de documents personnalisées. Pour les développeurs travaillant avec 125 langues internationales, le format hOCR préserve les attributs de texte spécifiques à la langue et les informations relatives au sens de lecture.

Quand devrais-je utiliser une sortie de type chaîne de caractères plutôt que des fichiers?

La sortie en chaîne est idéale lorsque vous devez traiter ou manipuler les données hOCR en mémoire, les intégrer à des services web ou stocker les résultats dans une base de données. Cette approche permet d'éviter les dépendances du système de fichiers et de générer du HTML dynamique pour les applications web. Les cas d'utilisation courants incluent :

  • Intégration API Web : Renvoi des données hOCR directement dans les réponses API
  • Stockage dans une base de données : Stockage des résultats de l'OCR avec les métadonnées des documents
  • Traitement en temps réel : Traite les résultats sans surcharge d'E/S sur disque
  • Fonctions cloud : Travailler dans des environnements sans serveur avec un accès limité aux fichiers
  • Systèmes de gestion de contenu : intégrer les résultats de l'OCR dans les flux de documents existants

Pour les applications nécessitant un suivi de l'avancement des travaux (progress tracking), la sortie sous forme de chaîne permet un traitement immédiat des résultats partiels dès qu'ils sont disponibles. Ceci est particulièrement utile lors de la mise en œuvre de traitement OCR multithread où plusieurs documents sont traités simultanément.

Comment traiter plusieurs pages en chaînes HTML?

Lorsque vous travaillez avec des documents de plusieurs pages, SaveAsHocrString consolide toutes les pages en une seule chaîne HTML avec des divisions de page appropriées. Le contenu de chaque page est enveloppé dans des éléments hOCR appropriés, ce qui permet de conserver la structure du document et les limites de la page.

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

Cette approche fonctionne de manière transparente avec les flux PDF et prend en charge des scénarios avancés tels que le traitement de plages de pages spécifiques ou l'application de différentes configurations d'OCR à différentes pages.

Conseils avancés pour la mise en œuvre de hOCR

<TODO : Ajouter une image ici -->

Quelles sont les meilleures pratiques pour la qualité des sorties hOCR?

Pour maximiser la qualité de votre résultat hOCR, pensez à appliquer des filtres d'optimisation d'image avant le traitement :

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

Pour les scans de faible qualité, des étapes de prétraitement supplémentaires peuvent améliorer de manière significative la précision de l'hOCR. L'assistant de filtrage aide à déterminer les combinaisons de filtres optimales pour vos types de documents spécifiques.

Comment la structure de hOCR prend-elle en charge le traitement avancé?

Le hOCR généré suit la spécification standard avec des éléments div imbriqués représentant la hiérarchie du document :

<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

Cette structure permet une extraction précise de l'emplacement du texte et des capacités d'analyse avancée des documents, ce qui la rend précieuse pour les applications nécessitant des relations spatiales entre les textes ou la préservation de la mise en page. Lorsque vous travaillez avec l'extraction de tableaux, le format hOCR permet de conserver la structure tabulaire et les relations entre les cellules.

Les attributs bbox (bounding box) contiennent des coordonnées au format "bbox left top right bottom", fournissant des données de localisation au pixel près pour chaque élément de texte. Ces informations sont cruciales pour :

  • Créer des visionneuses de documents interactives avec sélection de texte
  • Mettre en œuvre des systèmes de rédaction qui préservent la mise en page
  • Construire des outils d'accessibilité qui maintiennent l'ordre de lecture
  • Développement de systèmes de comparaison de documents

Pour les développeurs qui ont besoin d'options de configuration encore plus détaillées, le Guide de configuration détaillée de Tesseract fournit des paramètres avancés qui affectent la qualité et la structure de la sortie hOCR.

Questions Fréquemment Posées

Qu'est-ce que hOCR et pourquoi est-il utile pour les applications d'OCR ?

hOCR (HTML-based OCR) est un format de fichier qui représente les résultats de l'OCR en HTML structuré, stockant à la fois le texte reconnu et les informations spatiales telles que les coordonnées des caractères. IronOcr prend en charge l'exportation hOCR, ce qui est précieux pour les applications nécessitant des données sur la position du texte, l'indexation des documents, les outils d'accessibilité et le maintien de l'intégrité de la mise en page lors du traitement des documents numérisés.

Comment activer la sortie hOCR dans mon application OCR C# ?

Pour activer la sortie hOCR avec IronOCR, définissez la propriété Configuration.RenderHocr sur true sur votre instance IronTesseract. Cela indique à IronOcr de préparer les résultats de l'OCR au format hOCR, ce qui vous permet de les exporter à l'aide des méthodes SaveAsHocrFile ou SaveAsHocrString.

Quelles sont les méthodes disponibles pour exporter les résultats hOCR ?

IronOcr fournit deux méthodes d'exportation des résultats hOCR : SaveAsHocrFile() qui enregistre la sortie directement dans un fichier HTML sur le disque, et SaveAsHocrString() qui renvoie le HTML hOCR sous forme de chaîne de caractères pour un traitement ultérieur ou un stockage dans votre application.

Puis-je exporter des résultats d'OCR en tant que hOCR avec une seule ligne de code ?

Oui, IronOcr permet l'exportation de hOCR en une seule ligne en utilisant le chaînage de méthodes. Vous pouvez créer une instance IronTesseract avec RenderHocr activé, lire votre entrée et appeler SaveAsHocrString() en une seule instruction : var hocr = new IronTesseract { Configuration = { RenderHocr = true } }.Read(new OcrInput("image.png")).SaveAsHocrString() ;

Quel type d'informations spatiales hOCR préserve-t-il à partir des résultats de l'OCR ?

hOCR préserve les informations de mise en page et les coordonnées de chaque caractère reconnu dans l'image ou le document original. L'exportation hOCR d'IronOcr conserve ces données spatiales, permettant des fonctionnalités telles que la mise en évidence du texte pour le débogage, la création de superpositions cliquables sur les images et la compréhension de l'endroit où le texte apparaît sur le document d'origine.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Revu par
Jeff Fritz
Jeffrey T. Fritz
Responsable principal du programme - Équipe de la communauté .NET
Jeff est également responsable principal du programme pour les équipes .NET et Visual Studio. Il est le producteur exécutif de la série de conférences virtuelles .NET Conf et anime 'Fritz and Friends', une diffusion en direct pour développeurs qui est diffusée deux fois par semaine où il parle de technologie et écrit du code avec les téléspectateurs. Jeff écrit des ateliers, des présentations et prévoit du contenu pour les plus grands événements de développement Microsoft, y compris Microsoft Build, Microsoft Ignite, .NET Conf et le sommet Microsoft MVP
Prêt à commencer?
Nuget Téléchargements 5,299,091 | Version : 2025.12 vient de sortir