IRONSOFTWAREHOME

Detectando Tabelas de Bordas Pontilhadas com ReadDocumentAdvanced

Curtis Chau
Curtis Chau
Updated: 29 de junho de 2026

ReadDocumentAdvanced extrai dados de tabela célula por célula, mas não consegue detectar tabelas cujas bordas são pontilhadas ou tracejadas (por exemplo, border: 1px dotted black). O texto na página pode ainda ser legível, mas acessar o objeto tabela falha porque o motor nunca reconhece a tabela.

Quando você chama ReadDocumentAdvanced em um documento com uma tabela de borda pontilhada e então lê suas células, ele lança:

Unhandled exception. System.InvalidOperationException: Sequence contains no elements
Text

As lacunas entre os pontos quebram a borda em segmentos descontínuos, então o motor OCR não vê contorno contínuo para tratar como um limite de tabela. Sem Tables detectadas, Tables.First() não tem nada a retornar.

Solução

Aplique o filtro Dilate() antes de processar. A dilatação expande os pixels escuros na imagem, fechando as lacunas entre os pontos para que a borda seja lida como uma linha sólida. O motor pode então detectar o objeto tabela e retornar suas células.

1. Habilitar leitura de tabelas e carregar a entrada

Ative ReadDataTables para que o motor construa a saída da tabela estruturada, depois carregue sua imagem.

var ocr = new IronTesseract();
ocr.Configuration.ReadDataTables = true;
var input = new OcrInput();
input.Load("image-20250408-144240.png");
C#

Tabela de entrada com bordas pontilhadas que o OCR não detecta

2. Dilar antes de ler

Chame Dilate() na entrada para mesclar a borda pontilhada em um contorno contínuo, depois execute ReadDocumentAdvanced.

input.Dilate();
input.SaveAsImages("export.png", AnyBitmap.ImageFormat.Png);
var res = ocr.ReadDocumentAdvanced(input);
Console.WriteLine(res.Tables.First().CellInfos.First().CellText);
C#

Dilate() converte as linhas pontilhadas visuais em bordas sólidas que o motor pode rastrear, então res.Tables agora está populada e o texto da célula é lido sem problemas. A chamada SaveAsImages é opcional; ela permite inspecionar a imagem dilatada para confirmar que as bordas se fecharam como esperado.

Tabela após Dilate() com bordas pontilhadas mescladas em linhas sólidas

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,254,007Versã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.
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.

OR
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.