IRONSOFTWAREHOME

Configuração OCR para Leitura Avançada

Curtis Chau
Curtis Chau
Updated: 4 de junho de 2026

IronOCR oferece métodos avançados de leitura de digitalizações, como ReadPassport, ReadLicensePlate e ReadPhoto, que vão além do OCR padrão. Esses métodos são alimentados pelo pacote IronOcr.Extensions.AdvancedScan. Para ajustar como esses métodos processam texto, IronOCR expõe a classe TesseractConfiguration, dando aos desenvolvedores controle total sobre a lista branca de caracteres, lista negra, detecção de código de barras, leitura de tabelas de dados, e mais.

Este artigo cobre as propriedades TesseractConfiguration disponíveis para leitura avançada e exemplos práticos para configurar o OCR em cenários do mundo real.

Início rápido: Restringir a saída do OCR a uma lista de caracteres permitidos

Defina WhiteListCharacters em TesseractConfiguration antes de chamar Read. Qualquer caractere que não esteja na lista de permissões é silenciosamente removido do resultado, eliminando ruídos sem qualquer pós-processamento.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Copie e execute este trecho de código.

    var result = new IronTesseract() { Configuration = new TesseractConfiguration { WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789- " } }.Read(new OcrInput("image.png")); Console.WriteLine(result.Text);
    C#
  3. 3Implante para testar em seu ambiente de produção.

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

Propriedades do TesseractConfiguration

A classe TesseractConfiguration fornece as seguintes propriedades para personalizar o comportamento do OCR. Estas são definidas por meio de IronTesseract.Configuration.

PropriedadeTipoDescrição
WhiteListCharactersstringApenas caracteres presentes nesta string serão reconhecidos na saída de OCR. Todos os outros caracteres são excluídos.
BlackListCharactersstringOs caracteres nesta string são ativamente ignorados e removidos da saída de OCR.
ReadBarCodesboolHabilita ou desabilita a detecção de códigos de barras no documento durante o processamento de OCR.
ReadDataTablesboolHabilita ou desabilita a detecção da estrutura da tabela no documento usando Tesseract.
PageSegmentationModeModo de segmentação de página TesseractDetermina como o Tesseract segmenta a imagem de entrada. Opções incluem AutoOsd, Auto, SingleBlock, SingleLine, SingleWord, e mais.
RenderSearchablePdfboolQuando ativado, a saída de OCR pode ser salva como um PDF pesquisável com uma camada de texto invisível.
RenderHocrboolQuando ativado, a saída de OCR inclui dados hOCR para processamento ou exportação adicional.
TesseractVariablesDictionary<string, object>Fornece acesso direto às variáveis ​​de configuração de baixo nível do Tesseract para um controle preciso.

O dicionário TesseractVariables vai ainda mais longe, expondo centenas de parâmetros subjacentes do mecanismo Tesseract para casos em que as propriedades de alto nível não são suficientes.

Os exemplos abaixo demonstram cada grupo de propriedades, começando com a lista de caracteres permitidos.

Configurando uma Lista Branca de Caracteres para Placas de Veículos

Um caso de uso comum para WhiteListCharacters é restringir a saída do OCR apenas aos caracteres que podem aparecer em uma placa de licença: letras maiúsculas, dígitos, hifens e espaços. Isso elimina ruídos e melhora a precisão informando o motor para ignorar qualquer coisa fora do conjunto de caracteres esperado.

Entrada

O seguinte registro de veículo contém uma mistura de texto em maiúsculas, texto em minúsculas, símbolos especiais (@, $, #, |, *), e pontuação.

Registro de veículo com caracteres mistos para demonstração de lista branca de OCR

BlackListCharacters complementa a lista branca, excluindo ativamente símbolos de ruído conhecidos como , and *`.

using IronOcr;

// Initialize the Tesseract OCR engine
IronTesseract ocr = new IronTesseract();

ocr.Configuration = new TesseractConfiguration
{
    // Whitelist only characters that appear on license plates
    WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789- ",

    // Blacklist common noise characters
    BlackListCharacters = "`~@#$%&*",
};

var ocrInput = new OcrInput();
// Load the input image
ocrInput.LoadImage("advanced-input.png");
// Perform OCR on the input image with ReadPhoto method
var results = ocr.ReadPhoto(ocrInput);

// Print the filtered text result to the console
Console.WriteLine(results.Text);

Saída

Saída de OCR mostrando apenas caracteres de placa de licença permitidos

O filtro de lista branca é claramente visível nos resultados:

  • "Placa: ABC-1234" se torna "P ABC-1234". A palavra em minúsculas "late:" é excluída, enquanto o número da placa é preservado exatamente.
  • "VIN: 1HGBH41JXMN109186" se torna "VIN 1HGBH41JXMN109186". O dois-pontos é removido, mas o VIN em maiúsculas e o número completo são mantidos.
  • "Proprietário: john.doe@email.com" se torna "O". Todo o e-mail em minúsculas e a pontuação são removidos.
  • "Região: CA-90210 |Zona #5" se torna "R CA-90210 Z 5". O pipe (|) and hash (#) são removidos, enquanto as letras maiúsculas e os números sobrevivem.
  • "Taxa: $125.00 + imposto"* se torna "F 12500". O símbolo do dólar, ponto decimal, sinal de mais e "imposto" em minúsculas são todos removidos.
  • "Ref: ~record_v2^final" se torna "R 2". O til (~), sublinhado, acento circunflexo (^), e todos os caracteres minúsculos são removidos.

A mesma abordagem WhiteListCharacters e BlackListCharacters funciona para qualquer tipo de documento, não apenas placas de licença. A próxima seção mostra como estender uma leitura para detectar códigos de barras e estruturas de tabela na mesma passagem.

Configurando Leitura de Código de Barras e Tabelas de Dados

IronOCR pode detectar códigos de barras e tabelas estruturadas dentro de documentos juntamente com texto. Esses recursos são controlados por meio de TesseractConfiguration:

IronTesseract ocr = new IronTesseract();

ocr.Configuration = new TesseractConfiguration
{
    // Enable barcode detection within documents
    ReadBarCodes = true,

    // Enable table structure detection
    ReadDataTables = true,
};
  • ReadBarCodes: Quando definido para true, IronOCR examina o documento em busca de códigos de barras além do texto. Defina para false para ignorar a detecção de códigos de barras e acelerar o processamento quando não se esperam códigos de barras.
  • ReadDataTables: Quando definido para true, Tesseract tenta detectar e preservar estruturas de tabelas no documento. Isso é útil para faturas, relatórios e outros documentos tabulares.

Essas opções podem ser combinadas com WhiteListCharacters e BlackListCharacters para controle preciso sobre o que é extraído de documentos complexos.

Embora a filtragem e a detecção controlem o que é extraído, a interpretação do layout é uma preocupação à parte. A próxima seção cobre como selecionar o PageSegmentationMode correto para o tipo de documento.

Controlando o Modo de Segmentação de Página

PageSegmentationMode indica a Tesseract como segmentar a imagem de entrada antes do reconhecimento. Escolher o modo errado para um determinado layout faz com que o mecanismo interprete o texto incorretamente ou o ignore completamente.

ModoCaso de uso
AutoOsdAnálise automática de layout com detecção de orientação e script
AutoAnálise automática de layout sem OSD (padrão)
SingleColumnAssume que a imagem é uma única coluna de texto
SingleBlockAssume que a imagem é um único bloco uniforme de texto
SingleLineAssume que a imagem é uma única linha de texto
SparseTextEncontra o máximo de texto possível em qualquer ordem

Para um rótulo ou faixa que contém uma única linha, SingleLine elimina a análise em múltiplos blocos e melhora tanto a velocidade quanto a precisão.

Entrada

single-line-label.png é um rótulo de envio estreito com exatamente uma linha de texto em negrito Courier: SHIPPING LABEL: TRK-2024-XR9-001.

Etiqueta de envio de linha única para modo de segmentação OCR SingleLine
IronTesseract ocr = new IronTesseract();

ocr.Configuration = new TesseractConfiguration
{
    PageSegmentationMode = TesseractPageSegmentationMode.SingleLine,
};

using OcrInput input = new OcrInput();
input.LoadImage("single-line-label.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);

Para uma página digitalizada com posicionamento irregular de texto, SparseText recupera mais conteúdo do que Auto.

Entrada

receipt-scan.png é um recibo térmico da Corner Market com quatro itens de linha (café, muffin, suco, barra de granola), um separador pontilhado, subtotal, imposto e total. Este é o tipo de layout em que a segmentação por blocos fixos deixa de identificar entradas em diferentes posições horizontais.

Recibo térmico para o modo de segmentação de texto esparso por OCR
IronTesseract ocr = new IronTesseract();

ocr.Configuration = new TesseractConfiguration
{
    PageSegmentationMode = TesseractPageSegmentationMode.SparseText,
};

using OcrInput input = new OcrInput();
input.LoadImage("receipt-scan.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);

Com a segmentação do layout ajustada ao tipo de documento, o próximo passo é controlar o formato de saída para o processamento subsequente.

Gerando PDFs Pesquisáveis e Saída hOCR

RenderSearchablePdf e RenderHocr controlam os formatos de saída que o IronOCR produz junto com o resultado em texto simples.

RenderSearchablePdf incorpora uma camada de texto invisível sobre a imagem original, produzindo um PDF onde os usuários podem pesquisar e copiar texto enquanto a imagem digitalizada permanece visível. Este é o formato de saída padrão para fluxos de trabalho de arquivamento de documentos.

Entrada

scanned-document.pdf é uma carta comercial de uma única página da IronOCR Solutions Ltd. (datada de 15 de março de 2024, referência DOC-2024-OCR-0315). O resultado é salvo como searchable-output.pdf.

IronTesseract ocr = new IronTesseract();

ocr.Configuration = new TesseractConfiguration
{
    RenderSearchablePdf = true,
};

using OcrInput input = new OcrInput();
input.LoadPdf("scanned-document.pdf");

OcrResult result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable-output.pdf");

Saída

O resultado é um PDF que parece idêntico ao original, mas contém uma camada de texto oculta. Abra searchable-output.pdf e use Ctrl+F para verificar se o texto incorporado é pesquisável e copiável.

RenderHocr produz um documento hOCR, um arquivo HTML que codifica o conteúdo de texto junto com as coordenadas da caixa delimitadora para cada palavra. Isso é útil quando ferramentas subsequentes precisam de posicionamento preciso de palavras, por exemplo, mecanismos de redação ou análise de layout de documentos.

Entrada

document-page.png é uma página de documento com o título "Resumo Trimestral Q1 2024" e dois parágrafos de dados financeiros cobrindo receita, custos operacionais e impulsionadores de crescimento. O resultado é salvo como output.html.

Entrada de página do documento para saída de caixa delimitadora hOCR
IronTesseract ocr = new IronTesseract();

ocr.Configuration = new TesseractConfiguration
{
    RenderHocr = true,
};

using OcrInput input = new OcrInput();
input.LoadImage("document-page.png");

OcrResult result = ocr.Read(input);
result.SaveAsHocrFile("output.html");

Saída

output.html codifica cada palavra reconhecida com suas coordenadas de caixa delimitadora. Abra o arquivo em um navegador para inspecionar a estrutura hOCR ou passe-o para uma ferramenta subsequente para análise de layout ou redação.

Ambas as sinalizações podem ser ativadas ao mesmo tempo se você precisar de todos os três formatos de saída (texto simples, PDF pesquisável e hOCR) de uma única chamada de leitura.

Essas opções de saída funcionam independentemente do idioma que está sendo lido, incluindo alfabetos não latinos. A próxima seção mostra como aplicar a filtragem de caracteres a textos em japonês.

Filtragem de Caracteres Unicode para Documentos Internacionais

Para documentos internacionais em chinês, japonês ou coreano, as propriedades WhiteListCharacters e BlackListCharacters funcionam com caracteres Unicode. Isso permite restringir a saída a scripts específicos, como apenas Hiragana e Katakana para japonês.

Observe: Certifique-se de que o pacote de idioma correspondente foi instalado (por exemplo, IronOcr.Languages.Japanese) antes de prosseguir.

Entrada

O documento contém um título (テスト), uma frase japonesa misturando Hiragana e Katakana com variantes de marca sonora (プ, で), uma linha de preço com símbolos de ruído na lista negra (★, ■) e Kanji (価格), e uma linha de memorando com outro símbolo na lista negra (§), mais Kanji (購入), variantes adicionais de marca sonora (プ, デ) e base Katakana (メモ,ール). A lista de permissões permite apenas Hiragana básico, Katakana básico, dígitos e pontuação japonesa comum; Os três símbolos de ruído estão explicitamente na lista negra.

Configuração avançada de OCR para entrada em japonês

Os intervalos de caracteres Unicode para Hiragana e Katakana são passados como literais de string em WhiteListCharacters, com os símbolos de ruído listados em BlackListCharacters.

Aviso: O console pode não suportar a exibição de caracteres Unicode. Redirecionar a saída para um arquivo .txt é uma forma confiável de verificar os resultados ao lidar com tais caracteres.
using IronOcr;
using System.IO;

IronTesseract ocr = new IronTesseract();

ocr.Configuration = new TesseractConfiguration
{
    // Whitelist only Hiragana, Katakana, numbers, and common Japanese punctuation
    WhiteListCharacters = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん" +
                            "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン" +
                            "0123456789、。?!()¥ー",

    // Blacklist common noise/symbols you want to ignore
    BlackListCharacters = "★■§",
};

var ocrInput = new OcrInput();

// Load Japanese input image
ocrInput.LoadImage("jp.png");

// Perform OCR on the input image with ReadPhoto method
var results = ocr.ReadPhoto(ocrInput);

// Write the text result directly to a file named "output.txt"
File.WriteAllText("output.txt", results.Text);

// You can add this line to confirm the file was saved:
Console.WriteLine("OCR results saved to output.txt");

Saída

Configuração avançada de OCR para saída em japonês

O resultado completo filtrado está disponível como um arquivo de texto: jp-output.txt .

Como a lista branca inclui apenas caracteres básicos de Hiragana e Katakana, variantes derivadas de marcas sonoras, como プ (pu) e デ (de), são descartadas. Caracteres kanji como 価格 (preço) e 購入 (compra) também são excluídos, pois não fazem parte da lista de caracteres permitidos. Símbolos na lista negra como , e § são removidos ativamente, independentemente da lista branca.

Para onde devo ir em seguida?

Agora que você entende como configurar o IronOCR para cenários de leitura avançados, explore:

Para uso em produção, lembre-se de obter uma licença para remover marcas d'água e acessar a funcionalidade completa.

Perguntas frequentes

O que é TesseractConfiguration no IronOCR?

A opção TesseractConfiguration no IronOCR permite que os usuários personalizem as configurações de OCR, habilitando recursos avançados de leitura, como listas de caracteres permitidos, leitura de código de barras e suporte multilíngue.

Como posso configurar uma lista de caracteres permitidos no IronOCR?

No IronOCR, você pode configurar uma lista de caracteres permitidos usando o TesseractConfiguration, o que permite especificar quais caracteres o mecanismo de OCR deve reconhecer, útil para tarefas como a leitura de placas de veículos.

O IronOCR consegue ler códigos de barras e tabelas de dados?

Sim, o IronOCR pode ser configurado para ler códigos de barras e tabelas de dados ajustando configurações específicas nas propriedades do TesseractConfiguration para uma extração precisa de dados OCR.

O IronOCR oferece suporte a idiomas internacionais como chinês, japonês e coreano?

O IronOCR oferece suporte a idiomas internacionais, incluindo chinês, japonês e coreano, por meio de suas opções multilíngues de configuração do Tesseract.

Quais são os benefícios de usar configurações avançadas de OCR no IronOCR?

A utilização de configurações avançadas de OCR no IronOCR permite um reconhecimento de texto mais preciso e eficiente, suportando tarefas especializadas como o reconhecimento de texto em idiomas específicos e a extração de dados estruturados.

É possível otimizar o IronOCR para tarefas específicas de OCR?

Sim, o IronOCR pode ser otimizado para tarefas específicas de OCR configurando opções como listas de caracteres permitidos e habilitando o reconhecimento de código de barras ou tabelas, melhorando o desempenho para aplicações específicas.

Como faço para ativar o suporte multilíngue no IronOCR?

Para habilitar o suporte multilíngue no IronOCR, você pode ajustar as configurações de idioma no TesseractConfiguration, permitindo que o mecanismo de OCR reconheça textos em vários idiomas.

O que são listas de caracteres permitidos e como elas são usadas no IronOCR?

As listas de caracteres permitidos no IronOCR são listas de caracteres específicos que o mecanismo de OCR está configurado para reconhecer, ideais para tarefas específicas, como a leitura de numerais ou padrões de texto específicos.

O IronOCR pode ser usado para ler formatos de dados estruturados?

Sim, o IronOCR pode ser configurado para ler e processar formatos de dados estruturados, como códigos de barras e tabelas, oferecendo recursos versáteis de OCR para diversas necessidades de extração de dados.

Quais configurações estão disponíveis no IronOCR para reconhecimento avançado de texto?

O IronOCR oferece configurações como listas de caracteres permitidos, suporte multilíngue e reconhecimento de código de barras para aprimorar os recursos avançados de reconhecimento de texto, adaptados a requisitos específicos.

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 bem estruturados e visualmente atraentes.

...
Leia mais

Pronto para começar?

Nuget Downloads 6,236,385Versão:2026.9recém-lançado

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.
Biblioteca NuGet C# para PDF
Instalar com NuGet

Versão: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. No Solution Explorer, clique com o botão direito do mouse em Referências e selecione Gerenciar Pacotes NuGet.
  2. Selecione Procurar e pesquise "IronOCR".
  3. Selecione o pacote e instale.
DLL de PDF em C#
Baixar DLL

Versão: 2026.9

ou faça o download do Windows Installer aqui .

  1. Baixe e descompacte o IronOCR em um local como ~/Libs dentro do diretório da sua solução.
  2. No Solution Explorer do Visual Studio, clique com o botão direito do mouse em Referências. Selecione Procurar e digite "IronOCR.dll".

Licenças a partir de US$ 749

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.