Adicionando Marcadores com ExtractTextFromPage

Curtis Chau
Curtis Chau
Updated: 29 de junho de 2026

Quando você adiciona marcadores com base no conteúdo do texto, procurar com a propriedade Pages.Lines pode falhar porque o texto retornado volta desordenado ou fora de ordem, então uma pesquisa baseada em título nunca corresponde. Extrair o texto da página com ExtractTextFromPage() lê cada página na ordem lógica e lhe dá uma string confiável para busca.

Observe: Na versão 2026.5.x e acima, use a classe LinkAnnotation em vez. Ela tem suporte embutido para links clicáveis que navegam para uma página e posição específicas, e é a abordagem recomendada quando disponível.

Pages.Lines reconstrói o texto conforme aparece visualmente na página. Isso quebra quando o texto é desenhado em uma ordem não linear, quando fontes ou codificações personalizadas estão em jogo, ou quando o PDF foi gerado a partir de HTML ou uma ferramenta de terceiros com um layout complexo. O resultado é um texto incompleto ou desordenado que não pode ser pesquisado de forma confiável.

Solução

1. Leia cada página com ExtractTextFromPage()

Extraia o texto embutido bruto de cada página em vez da reconstrução visual. ExtractTextFromPage() retorna o conteúdo da página na ordem lógica de leitura, o que torna a pesquisa por cabeçalhos muito mais confiável em diferentes estruturas de PDF.

2. Percorra cada página e marque cada cabeçalho único

Percorra todas as páginas para que nenhuma seção seja perdida, independentemente de onde ela esteja, e registre quais cabeçalhos você já viu para que cada um seja marcado apenas uma vez. Um HashSet é uma maneira limpa de desduplicar: dado um documento com seções intituladas "ARTICLE 1", "ARTICLE 2" e assim por diante, garante um único marcador por artigo.

A saída é um conjunto de marcadores apontando para cada cabeçalho especificado, mesmo quando o PDF é originado de uma fonte HTML dinâmica ou possui formatação complexa.

Código C# adicionando marcadores de PDF por cabeçalho de artigo usando ExtractTextFromPage e um HashSet

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 22,024,882Versão:2026.11recém-lançado