Como salvar resultados como hOCR em um arquivo HTML | IronOCR

Salve Resultados de OCR como HTML hOCR em C# com IronOCR

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

IronOCR permite que desenvolvedores salvem resultados de OCR como arquivos HTML hOCR definindo RenderHocr como true e usando os métodos SaveAsHocrFile ou SaveAsHocrString, preservando o layout do texto e coordenadas de caracteres em formato HTML estruturado.

Início rápido: Salvar saída de OCR como arquivo HTML hOCR

Habilite a renderização hOCR e exporte os resultados diretamente para um arquivo HTML com uma configuração e uma chamada de método.

  1. Instale IronOCR com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronOcr
  2. Copie e execute este trecho de código.

    var hocr = new IronTesseract { Configuration = { RenderHocr = true } }.Read(new OcrInput("image.png")).SaveAsHocrString();
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronOCR em seu projeto hoje com uma avaliação gratuita

    arrow pointer


O que é hOCR e por que usá-lo?

hOCR, que significa "OCR baseado em HTML", é um formato de arquivo usado para representar os resultados do Reconhecimento Óptico de Caracteres (OCR) de maneira estruturada. Os arquivos hOCR são escritos em HTML e fornecem uma maneira de armazenar o texto reconhecido, informações de layout e as coordenadas de cada caractere reconhecido dentro de uma imagem ou documento. Este formato estruturado torna o hOCR particularmente valioso para aplicações que requerem dados de posição do texto, como indexação de documentos, ferramentas de acessibilidade e implementações de pesquisa avançadas.

O formato hOCR é essencial para desenvolvedores que estão construindo aplicativos que precisam entender não apenas qual texto está presente, mas onde esse texto aparece no documento original. Essa informação espacial possibilita recursos como destacar texto para depuração, criar sobreposições clicáveis em imagens originais e manter a integridade do layout do documento ao converter documentos digitalizados em formatos acessíveis. Para aplicativos empresariais que processam documentos digitalizados, o hOCR fornece a base para uma compreensão e extração avançada de documentos.

Como exporto resultados de OCR como arquivos hOCR?

Para exportar o resultado como hOCR, primeiro habilite a propriedade Configuration.RenderHocr definindo-a como true. Após obter o objeto OcrResult do método Read, use o método SaveAsHocrFile para exportar o resultado do OCR como HTML. Este método gera um arquivo HTML contendo o resultado da leitura dos documentos de entrada. O código abaixo demonstra o uso do seguinte arquivo TIFF de exemplo.

: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

A classe OcrInput fornece amplas opções para preparação de imagens antes do processamento de OCR. Você pode aplicar filtros, especificar regiões de interesse e lidar com vários formatos de entrada, incluindo arquivos TIFF de várias páginas. Ao trabalhar com extração de texto OCR de PDF, os mesmos métodos de exportação hOCR se aplicam sem problemas.

Por que é importante definir RenderHocr?

Definir a propriedade RenderHocr como true instrui o IronOCR a gerar a estrutura hOCR necessária durante o processo de OCR. Sem esta configuração, os métodos SaveAsHocrFile e SaveAsHocrString não produzirão saída hOCR devidamente formatada com preservação de layout. Esta configuração deve ser definida antes de chamar o método Read, pois afeta como o motor Tesseract processa e estrutura os dados de saída.

O formato hOCR preserva metadados cruciais, incluindo:

  • Caixas delimitadoras em nível de caractere
  • Pontuações de confiança de palavras
  • Estrutura de linha e parágrafo
  • Dimensões da página e informações de DPI
  • Características da fonte quando detectável

Esses metadados são particularmente úteis ao implementar fluxos de trabalho de visão computacional ou construir sistemas que precisam entender a estrutura do documento além da extração de texto simples.

Quais tipos de arquivo suportam exportação hOCR?

O IronOCR suporta exportação hOCR a partir de vários formatos de imagem, incluindo TIFF, PNG, JPEG, BMP e GIF. Documentos PDF também podem ser processados e exportados como hOCR, com as informações de texto e layout de cada página preservadas na estrutura HTML. A biblioteca lida de forma transparente com imagens de página única e documentos de múltiplas páginas.

Para resultados otimizados com diferentes tipos de arquivo:

  • TIFF: Ideal para documentos digitalizados, suporta processamento de várias páginas
  • PDF: Excelente para conteúdos mistos (texto e imagens)
  • PNG/JPEG: Melhor para fotografias ou capturas de tela que exigem OCR
  • BMP: Formato não comprimido adequado para digitalizações de alta qualidade

Ao lidar com tipos de documentos especializados, como passaportes ou placas de veículos, o formato hOCR ajuda a preservar as relações espaciais entre diferentes elementos de texto, facilitando a extração de campos específicos com base na sua localização.

Como posso exportar resultados de OCR como strings HTML?

Usando a mesma imagem de exemplo TIFF, utilize o método SaveAsHocrString para exportar o resultado do OCR como uma string HTML. Este método retorna uma string 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

A saída da string contém marcação completa de hOCR que pode ser processada, armazenada em bancos de dados ou integrada a aplicações web. Essa abordagem é particularmente útil ao construir sistemas de PDF pesquisáveis ou implementar soluções personalizadas de indexação de documentos. Para desenvolvedores que trabalham com 125 idiomas internacionais, o formato hOCR preserva atributos de texto específicos do idioma e informações de direção de leitura.

Quando devo usar a saída de string em vez de arquivos?

A saída de string é ideal quando você precisa processar ou manipular os dados hOCR na memória, integrar com serviços web ou armazenar resultados em um banco de dados. Essa abordagem evita dependências do sistema de arquivos e permite a geração dinâmica de HTML para aplicativos web. Os casos de uso comuns incluem:

  • Integração de API Web: Retornar dados hOCR diretamente nas respostas da API
  • Armazenamento em Banco de Dados: Armazenar resultados de OCR com metadados de documentos
  • Processamento em Tempo Real: Processar resultados sem sobrecarga de E/S de disco
  • Funções em Nuvem: Trabalhar em ambientes serverless com acesso limitado a arquivos
  • Sistemas de Gerenciamento de Conteúdo: Integrar resultados de OCR em fluxos de trabalho de documentos existentes

Para aplicações que exigem rastreio de progresso, a saída de string permite o processamento imediato de resultados parciais à medida que estão disponíveis. Isso é particularmente benéfico ao implementar processamento OCR multithread, onde vários documentos são processados simultaneamente.

Como eu processo múltiplas páginas em strings HTML?

Ao trabalhar com documentos de várias páginas, SaveAsHocrString consolida todas as páginas em uma única string HTML com divisões de página adequadas. O conteúdo de cada página é envolto em elementos hOCR apropriados, mantendo a estrutura do documento e os limites das páginas.

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

Esta abordagem funciona perfeitamente com fluxos de PDF e suporta cenários avançados, como processar intervalos de páginas específicas ou aplicar diferentes configurações de OCR a diferentes páginas.

Dicas Avançadas de Implementação de hOCR

Quais São as Melhores Práticas para Qualidade de Saída de hOCR?

Para maximizar a qualidade de sua saída hOCR, considere aplicar filtros de otimização de imagem antes de processar:

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

Para digitalizações de baixa qualidade, etapas adicionais de pré-processamento podem melhorar significativamente a precisão do hOCR. O assistente de filtros ajuda a determinar combinações de filtros ideais para seus tipos de documentos específicos.

Como a Estrutura de hOCR Suporta Processamento Avançado?

O hOCR gerado segue a especificação padrão com elementos div aninhados representando a hierarquia do 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 estrutura permite a extração precisa da localização do texto e capacidades avançadas de análise de documentos, tornando-o valioso para aplicativos que exigem relações espaciais de texto ou preservação de layout. Ao trabalhar com extração de tabelas, o formato hOCR ajuda a manter a estrutura tabular e as relações entre células.

Os atributos bbox (caixa delimitadora) contêm coordenadas no formato "bbox left top right bottom", fornecendo dados de localização precisos em pixels para cada elemento de texto. Esta informação é crucial para:

  • Criar visualizadores de documentos interativos com seleção de texto
  • Implementar sistemas de redação que preservem o layout
  • Criar ferramentas de acessibilidade que mantenham a ordem de leitura
  • Desenvolver sistemas de comparação de documentos

Para desenvolvedores que precisam de opções de configuração ainda mais detalhadas, o guia de configuração detalhada do Tesseract fornece configurações avançadas que afetam a qualidade e a estrutura de saída do hOCR.

Perguntas frequentes

O que é hOCR e por que é útil para aplicações de OCR?

O hOCR (OCR baseado em HTML) é um formato de arquivo que representa os resultados do OCR em HTML estruturado, armazenando tanto o texto reconhecido quanto informações espaciais, como coordenadas de caracteres. O IronOCR oferece suporte à exportação em hOCR, o que é valioso para aplicações que exigem dados de posição do texto, indexação de documentos, ferramentas de acessibilidade e manutenção da integridade do layout ao processar documentos digitalizados.

Como habilito a saída hOCR no meu aplicativo OCR em C#?

Para habilitar a saída hOCR com o IronOCR, defina a propriedade `Configuration.RenderHocr` como `true` na sua instância do IronTesseract. Isso instrui o IronOCR a preparar os resultados de OCR no formato hOCR, permitindo que você os exporte usando os métodos `SaveAsHocrFile` ou `SaveAsHocrString`.

Quais métodos estão disponíveis para exportar resultados de hOCR?

O IronOCR oferece dois métodos para exportar resultados de hOCR: SaveAsHocrFile(), que salva a saída diretamente em um arquivo HTML no disco, e SaveAsHocrString(), que retorna o HTML do hOCR como uma string para processamento posterior ou armazenamento em seu aplicativo.

Posso exportar os resultados do OCR como hOCR com apenas uma linha de código?

Sim, o IronOCR permite a exportação de hOCR em uma única linha usando encadeamento de métodos. Você pode criar uma instância do IronTesseract com RenderHocr habilitado, ler sua entrada e chamar SaveAsHocrString(), tudo em uma única instrução: var hocr = new IronTesseract { Configuration = { RenderHocr = true } }.Read(new OcrInput("image.png")).SaveAsHocrString();

Que tipo de informação espacial o hOCR preserva dos resultados do OCR?

O hOCR preserva as informações de layout e as coordenadas de cada caractere reconhecido na imagem ou documento original. A exportação de hOCR do IronOCR mantém esses dados espaciais, permitindo recursos como o realce de texto para depuração, a criação de sobreposições clicáveis em imagens e a compreensão de onde o texto aparece no documento original.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Analisado por
Jeff Fritz
Jeffrey T. Fritz
Gerente de Programa Principal - Equipe da Comunidade .NET
Jeff também é Gerente de Programa Principal das equipes do .NET e do Visual Studio. Ele é o produtor executivo da série de conferências virtuais .NET Conf e apresenta o "Fritz and Friends", uma transmissão ao vivo para desenvolvedores que vai ao ar duas vezes por semana, onde ele conversa sobre tecnologia e escreve código junto com os espectadores. Jeff cria workshops, apresentações e planeja conteúdo para os maiores eventos de desenvolvedores da Microsoft, incluindo o Microsoft Build, o Microsoft Ignite, a .NET Conf e o Microsoft MVP Summit.
Pronto para começar?
Nuget Downloads 5,525,971 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronOcr
executar um exemplo Veja sua imagem se transformar em texto pesquisável.