Cómo guardar resultados como hOCR en un archivo HTML | IronOCR

Guardar resultados de OCR como HTML hOCR en C# con IronOCR

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

IronOCR permite a los desarrolladores guardar los resultados de OCR como archivos HTML hOCR estableciendo RenderHocr en true y utilizando los métodos SaveAsHocrFile o SaveAsHocrString, conservando el diseño del texto y las coordenadas de los caracteres en formato HTML estructurado.

Inicio rápido: Guardar salida de OCR como archivo HTML hOCR

Habilite la representación de hOCR y exporte los resultados directamente a un archivo HTML con una configuración y una llamada a un método.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronOCR con el gestor de paquetes NuGet

    PM > Install-Package IronOcr

  2. Copie y ejecute este fragmento de código.

    var hocr = new IronTesseract { Configuration = { RenderHocr = true } }.Read(new OcrInput("image.png")).SaveAsHocrString();
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronOCR en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer


¿Qué es hOCR y por qué utilizarlo?

hOCR, que significa "OCR basado en HTML," es un formato de archivo utilizado para representar los resultados del Reconocimiento Óptico de Caracteres (OCR) de manera estructurada. los archivos hOCR están escritos en HTML y permiten almacenar el texto reconocido, la información de diseño y las coordenadas de cada carácter reconocido dentro de una imagen o documento. Este formato estructurado hace que hOCR sea especialmente valioso para aplicaciones que requieren datos de posición de texto, como la indexación de documentos, las herramientas de accesibilidad y las implementaciones de búsqueda avanzada.

El formato hOCR es esencial para los desarrolladores que crean aplicaciones que necesitan entender no solo qué texto está presente, sino dónde aparece ese texto en el documento original. Esta información espacial permite funciones como resaltar texto para depuración, crear superposiciones en las que se puede hacer clic sobre las imágenes originales y mantener la integridad del diseño del documento al convertir documentos escaneados a formatos accesibles. Para las aplicaciones empresariales que procesan documentos escaneados, hOCR proporciona la base para flujos de trabajo avanzados de comprensión y extracción de documentos.

¿Cómo se exportan los resultados de OCR como archivos hOCR?

<Descripción: Captura de pantalla que muestra el proceso paso a paso -->

Para exportar el resultado como hOCR, primero habilite la propiedad Configuration.RenderHocr estableciéndola en true. Después de obtener el objeto OcrResult del método Read, utilice el método SaveAsHocrFile para exportar el resultado del OCR como HTML. Este método genera un archivo HTML que contiene el resultado de la lectura de los documentos de entrada. El código a continuación demuestra el uso del archivo TIFF de muestra.

: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

La clase OcrInput ofrece numerosas opciones para preparar imágenes antes del procesamiento de OCR. Puede aplicar filtros, especificar regiones de interés y manejar varios formatos de entrada, incluidos archivos TIFF de varias páginas. Cuando se trabaja con Extracción de texto de PDF OCR, se aplican sin problemas los mismos métodos de exportación de hOCR.

¿Por qué es importante configurar RenderHocr?

Al establecer la propiedad RenderHocr en true, IronOCR genera la estructura hOCR necesaria durante el proceso de OCR. Sin esta configuración, los métodos SaveAsHocrFile y SaveAsHocrString no producirán una salida hOCR con el formato adecuado y preservando el diseño. Esta configuración debe establecerse antes de llamar al método Read, ya que afecta al modo en que el motor Tesseract procesa y estructura los datos de salida.

El formato hOCR conserva metadatos cruciales como:

  • Cuadros delimitadores a nivel de carácter
  • Puntuaciones de confianza de las palabras
  • Estructura de líneas y párrafos
  • Dimensiones de la página e información sobre PPP
  • Características de las fuentes cuando sean detectables

Estos metadatos son especialmente útiles a la hora de implementar flujos de trabajo de visión por ordenador o de crear sistemas que necesiten comprender la estructura de los documentos más allá de la simple extracción de texto.

¿Qué tipos de archivos admite hOCR Export?

IronOCR admite la exportación de hOCR desde varios formatos de imagen, incluidos TIFF, PNG, JPEG, BMP y GIF. Los documentos PDF también pueden procesarse y exportarse como hOCR, conservando el texto y la información de diseño de cada página en la estructura HTML. La biblioteca maneja a la perfección tanto imágenes de una sola página como documentos de varias páginas.

Para obtener resultados óptimos con diferentes tipos de archivos:

  • TIFF: ideal para documentos escaneados, admite el procesamiento de varias páginas
  • PDF: Excelente para contenido mixto (texto e imágenes)
  • PNG/JPEG: mejor para fotografías o capturas de pantalla que requieran OCR
  • BMP: Formato sin comprimir adecuado para escaneos de alta calidad

Cuando se trata de tipos de documentos especializados como pasaportes o placas de matrícula, el formato hOCR ayuda a conservar las relaciones espaciales entre los distintos elementos del texto, lo que facilita la extracción de campos específicos en función de su ubicación.

¿Cómo puedo exportar los resultados de OCR como cadenas HTML?

<Descripción: Captura de pantalla que muestra el proceso paso a paso -->

Utilizando la misma imagen TIFF de muestra, utilice el método SaveAsHocrString para exportar el resultado del OCR como una cadena HTML. Este método devuelve una cadena HTML.

: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

La cadena de texto resultante contiene el marcado hOCR completo que puede procesarse posteriormente, almacenarse en bases de datos o integrarse en aplicaciones web. Este enfoque es especialmente útil cuando se crean sistemas PDF con capacidad de búsqueda o se implementan soluciones personalizadas de indexación de documentos. Para los desarrolladores que trabajan con 125 idiomas internacionales, el formato hOCR conserva los atributos de texto específicos del idioma y la información sobre la dirección de lectura.

¿Cuándo debo utilizar cadenas de salida en lugar de archivos?

La salida en cadena es ideal cuando se necesita procesar o manipular los datos hOCR en memoria, integrarlos con servicios web o almacenar los resultados en una base de datos. Este enfoque evita las dependencias del sistema de archivos y permite la generación dinámica de HTML para aplicaciones web. Los casos de uso comunes incluyen:

  • Integración de API web: Devuelve datos hOCR directamente en las respuestas API
  • Almacenamiento en base de datos: Almacenar resultados de OCR con metadatos de documentos
  • Procesamiento en tiempo real: Procese los resultados sin sobrecarga de E/S de disco
  • Funciones en la nube: Trabaja dentro de entornos sin servidor con acceso limitado a archivos
  • Sistemas de gestión de contenidos: Integrar los resultados del OCR en los flujos de trabajo de documentos existentes

Para las aplicaciones que requieren seguimiento del progreso, la salida de cadenas permite el procesamiento inmediato de resultados parciales a medida que están disponibles. Esto resulta especialmente útil cuando se implementa procesamiento de OCR multihilo, en el que se procesan varios documentos a la vez.

¿Cómo puedo convertir varias páginas en cadenas HTML?

Cuando se trabaja con documentos de varias páginas, SaveAsHocrString consolida todas las páginas en una única cadena HTML con las divisiones de página adecuadas. El contenido de cada página se envuelve en elementos hOCR apropiados, manteniendo la estructura del documento y los límites de la página.

// 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
 }
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Este enfoque funciona a la perfección con corrientes PDF y admite escenarios avanzados como el procesamiento de rangos de páginas específicos o la aplicación de diferentes configuraciones de OCR a distintas páginas.

Consejos avanzados de implementación de hOCR

¿Cuáles son las mejores prácticas para la calidad de los resultados de hOCR?

Para maximizar la calidad de su resultado hOCR, considere aplicar filtros de optimización de imagen antes del procesamiento:

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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Para escaneos de baja calidad, los pasos adicionales de preprocesamiento pueden mejorar significativamente la precisión de hOCR. El asistente para filtros ayuda a determinar las combinaciones de filtros óptimas para sus tipos de documentos específicos.

¿Cómo soporta la estructura hOCR el procesamiento avanzado?

El hOCR generado sigue la especificación estándar con elementos div anidados que representan la jerarquía del documento:

<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

Esta estructura permite una extracción precisa de la ubicación del texto y funciones avanzadas de análisis de documentos, lo que la hace valiosa para aplicaciones que requieren relaciones espaciales de texto o la conservación del diseño. Cuando se trabaja con extracción de tablas, el formato hOCR ayuda a mantener la estructura tabular y las relaciones entre celdas.

Los atributos bbox (bounding box) contienen coordenadas en el formato "bbox left top right bottom", que proporcionan datos de ubicación con precisión de píxel para cada elemento de texto. Esta información es crucial para:

  • Creación de visores de documentos interactivos con selección de texto
  • Implantación de sistemas de redacción que preserven la maquetación
  • Creación de herramientas de accesibilidad que mantengan el orden de lectura
  • Desarrollo de sistemas de comparación de documentos

Para los desarrolladores que necesiten opciones de configuración aún más detalladas, la Guía de configuración detallada de Tesseract ofrece opciones avanzadas que afectan a la calidad y estructura de los resultados de hOCR.

Preguntas Frecuentes

¿Qué es hOCR y por qué es útil para las aplicaciones de OCR?

hOCR (OCR basado en HTML) es un formato de archivo que representa los resultados del OCR en HTML estructurado, almacenando tanto el texto reconocido como la información espacial, como las coordenadas de los caracteres. IronOCR admite la exportación de hOCR, lo que resulta útil para aplicaciones que requieren datos de posición de texto, indexación de documentos, herramientas de accesibilidad y mantenimiento de la integridad del diseño al procesar documentos escaneados.

¿Cómo habilito la salida hOCR en mi aplicación de OCR en C#?

Para habilitar la salida hOCR con IronOCR, establezca la propiedad Configuration.RenderHocr en true en su instancia IronTesseract. Esto le indica a IronOCR que prepare los resultados OCR en formato hOCR, permitiéndole exportarlos usando los métodos SaveAsHocrFile o SaveAsHocrString.

¿Qué métodos existen para exportar los resultados de hOCR?

IronOCR proporciona dos métodos para exportar los resultados de hOCR: SaveAsHocrFile() que guarda la salida directamente en un archivo HTML en el disco, y SaveAsHocrString() que devuelve el HTML hOCR como una cadena para su posterior procesamiento o almacenamiento en su aplicación.

¿Puedo exportar resultados de OCR como hOCR con una sola línea de código?

Sí, IronOCR permite la exportación de hOCR de una línea utilizando el encadenamiento de métodos. Puede crear una instancia IronTesseract con RenderHocr habilitado, leer su entrada y llamar a SaveAsHocrString() todo en una sola sentencia: var hocr = new IronTesseract { Configuration = { RenderHocr = true } }.Read(new OcrInput("imagen.png")).SaveAsHocrString();

¿Qué tipo de información espacial conserva hOCR de los resultados del OCR?

hOCR conserva la información de diseño y las coordenadas de cada carácter reconocido dentro de la imagen o documento original. La exportación a hOCR de IronOCR mantiene estos datos espaciales, lo que permite funciones como el resaltado de texto para depuración, la creación de superposiciones en las que se puede hacer clic en las imágenes y la comprensión de dónde aparece el texto en el documento original.

Chaknith Bin
Ingeniero de Software
Chaknith trabaja en IronXL e IronBarcode. Tiene un profundo conocimiento en C# y .NET, ayudando a mejorar el software y apoyar a los clientes. Sus conocimientos derivados de las interacciones con los usuarios contribuyen a mejores productos, documentación y experiencia en general.
Revisado por
Jeff Fritz
Jeffrey T. Fritz
Gerente Principal de Programas - Equipo de la Comunidad .NET
Jeff también es Gerente Principal de Programas para los equipos de .NET y Visual Studio. Es el productor ejecutivo de la serie de conferencias virtuales .NET Conf y anfitrión de 'Fritz and Friends', una transmisión en vivo para desarrolladores que se emite dos veces a la semana donde habla sobre tecnología y escribe código junto con la audiencia. Jeff escribe talleres, presentaciones, y planifica contenido para los eventos de desarrolladores más importantes de Microsoft, incluyendo Microsoft Build, Microsoft Ignite, .NET Conf y la Cumbre de Microsoft MVP.
¿Listo para empezar?
Nuget Descargas 5,246,844 | Versión: 2025.12 recién lanzado