IRONSOFTWAREHOME

Extração de Texto Fora de Ordem em Tabelas Justamente Compactadas

Curtis Chau
Curtis Chau
Updated: 10 de junho de 2026

Texto extraído de layouts de tabela ou formulário compactados aparece embaralhado. Caracteres de linhas adjacentes são misturados, por exemplo, "Número Único 123456789" é extraído como "U123456789nique Number".

Esta é uma limitação conhecida da extração page.Lines para layouts densamente compactados. page.Lines agrupa caracteres usando uma tolerância vertical embutida que não é configurável. Quando duas linhas visíveis em uma célula de tabela estão separadas por apenas um ponto ou dois, o agrupador colapsa ambas as linhas em uma linha lógica e ordena os caracteres da esquerda para a direita, mesclando-os. O método ExtractTextFromPage(i) por padrão usa a ordem do fluxo de conteúdo, que pode não corresponder à ordem de leitura visual em PDFs de formulário.

Solução

Recomendado: Extrair usando TextChunks com tolerância ajustável

Cada TextChunk expõe seu BoundingBox, o que permite o agrupamento por posição vertical e a ordenação dentro de cada linha por posição horizontal:

using IronPdf.Pages;
using System.Text;

static string ExtractTextUsingTextChunks(IPdfPage page, double rowTolerance = 2.0)
{
    var rows = page.TextChunks
        .Where(c => !string.IsNullOrWhiteSpace(c.Contents))
        .GroupBy(c => Math.Round(c.BoundingBox.Top / rowTolerance) * rowTolerance)
        .OrderByDescending(g => g.Key);

    var extractedText = new StringBuilder();
    foreach (var row in rows)
    {
        var line = string.Join(" ",
            row.OrderBy(c => c.BoundingBox.Left)
               .Select(c => c.Contents.Trim())
               .Where(text => !string.IsNullOrWhiteSpace(text)));
        extractedText.AppendLine(line);
    }
    return extractedText.ToString();
}

Comece com rowTolerance = 2.0. Se as linhas ainda se fundirem, reduza para 1.0 ou 0.5. Para controle mais fino, substitua page.Characters por page.TextChunks.

Alternativa: Extração por ordem visual

Para PDFs onde apenas a ordem do fluxo de conteúdo está errada:

pdf.ExtractTextFromPage(i, TextExtractionOrder.VisualOrder);

Para PDFs com linhas que estão visualmente muito próximas, a abordagem TextChunks lida melhor com tolerâncias apertadas.

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 20,878,335Versã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 IronPdf
nuget.org/packages/IronPdf/
  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 "IronPDF".
  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 IronPDF 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 "IronPDF.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 demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
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.