Text
Text
Esta página cobre a leitura de texto de volta de uma página, em três níveis de detalhe: texto simples, blocos de layout estruturado e glifos posicionados individualmente. Para escrever texto em uma página, veja Core API and Core API.
Extraindo Texto Simples
Page.GetText() devolve o texto simples montado da página, na ordem de leitura. É a maneira mais simples de confirmar qual texto a página realmente contém — por exemplo, após achatar um campo ou aplicar uma redação.
const page = doc.Pages[0];
console.log(page.GetText().includes('Internal memo'));Texto Estruturado
Page.GetStructuredText() extrai texto posicionado agrupado em linhas (por linha de base) e blocos semelhantes a parágrafos (por intervalo vertical e alinhamento da borda esquerda), retornando TextBlock[] — útil quando você precisa de layout, não apenas de uma string plana.
Introspecção ao Nível de Glifo
visitContent(doc, page, visitor) percorre os fluxos de conteúdo de uma página — incluindo em Form XObjects — e chama o manipulador correspondente em visitor para cada glifo, imagem ou caminho que encontrar. O manipulador glyph recebe um GlyphEvent: o text do glifo, seu quad em espaço de dispositivo, fontSize, color, e campos de proveniência como mcid (seu elemento de conteúdo marcado envolvente, se houver) e artifact (verdadeiro quando desenhado dentro de um escopo /Artifact).
import { visitContent } from '@asposefoss/pdf';
let glyphCount = 0;
visitContent(doc, page, {
glyph: (e) => {
glyphCount++;
if (e.artifact) return; // skip decorative content
console.log(e.text, e.quad, e.color);
},
});
console.log('glyphs drawn:', glyphCount);Dicas e Melhores Práticas
- Use
Page.GetText()para uma verificação rápida de presença/ausência; usevisitContent()com um manipuladorglyphquando precisar da posição exata de cada glifo, tamanho da fonte ou cor. - Verifique
GlyphEvent.artifactpara pular conteúdo decorativo (elementos de página, fundos) que um documento marcado classifica como/Artifactem vez de conteúdo real. GlyphEvent.mcidvincula um glifo ao seu elemento de estrutura envolvente quando o documento está marcado — combine com Structure para percorrer de um glifo ao seu elemento lógico.Page.GetStructuredText()agrupa glifos em blocos para você; recorra avisitContent()diretamente apenas quando precisar de detalhes por glifo queGetStructuredText()não expõe.
Problemas Comuns
| Problema | Causa | Correção |
|---|---|---|
Page.GetText() está faltando texto que está visivelmente na página | O texto foi desenhado como caminhos vetoriais ou como imagem, ao invés de operadores reais de exibição de glifos | Use visitContent() com um path / image handler para confirmar qual tipo de conteúdo realmente o desenhou |
O glyph handler de visitContent() dispara para texto decorativo de fundo | GlyphEvent.artifact não foi verificado | Ignorar eventos onde e.artifact é true |
| O texto extraído está fora da ordem visual de leitura | A montagem simples de GetText() não reconstrói o layout de múltiplas colunas | Use Page.GetStructuredText(), que agrupa texto em blocos sensíveis ao layout |
FAQ
Qual é a diferença entre GetText e GetStructuredText?
GetText() retorna uma única string plana do texto montado da página. GetStructuredText() retorna TextBlock[] — texto agrupado em linhas e blocos semelhantes a parágrafos por linha de base e layout, útil quando a posição importa.
Como obtenho a posição exata e o tamanho da fonte de cada caractere?
Chame visitContent(doc, page, { glyph: (e) => ... }). Cada GlyphEvent contém o text do glifo, espaço de dispositivo quad, fontSize, color e a linha de base angle.
Posso determinar se um trecho de texto é conteúdo real ou decoração?
Sim — GlyphEvent.artifact é true quando o glifo foi desenhado dentro de um escopo de conteúdo marcado /Artifact, a mesma distinção que Document.AutoTag() usa ao decidir o que marcar.
A extração de texto detecta conteúdo dentro de Form XObjects?
Sim — visitContent() entra em Form XObjects como parte de sua travessia, portanto os glifos desenhados através de um formulário reutilizado ainda são visitados.
API Reference Resumo
| Classe/Método | Descrição |
|---|---|
Page.GetText() | O texto simples montado da página, na ordem de leitura |
Page.GetStructuredText() | Texto agrupado em linhas e blocos semelhantes a parágrafos (TextBlock[]) |
visitContent() | Percorra o conteúdo de uma página, emitindo eventos de glifo/imagem/caminho com proveniência |
GlyphEvent | Um glifo posicionado: text, quad, fontSize, color, mcid, artifact |