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; use visitContent() com um manipulador glyph quando precisar da posição exata de cada glifo, tamanho da fonte ou cor.
  • Verifique GlyphEvent.artifact para pular conteúdo decorativo (elementos de página, fundos) que um documento marcado classifica como /Artifact em vez de conteúdo real.
  • GlyphEvent.mcid vincula 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 a visitContent() diretamente apenas quando precisar de detalhes por glifo que GetStructuredText() não expõe.

Problemas Comuns

ProblemaCausaCorreção
Page.GetText() está faltando texto que está visivelmente na páginaO texto foi desenhado como caminhos vetoriais ou como imagem, ao invés de operadores reais de exibição de glifosUse 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 fundoGlyphEvent.artifact não foi verificadoIgnorar eventos onde e.artifact é true
O texto extraído está fora da ordem visual de leituraA montagem simples de GetText() não reconstrói o layout de múltiplas colunasUse 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étodoDescriçã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
GlyphEventUm glifo posicionado: text, quad, fontSize, color, mcid, artifact

Ver também

 Português