Text

Text

Esta página cubre la lectura de texto de una página, en tres niveles de detalle: texto plano, bloques de diseño estructurados y glifos posicionados individualmente. Para escribir texto en una página, consulte Núcleo API and Núcleo API.


Extracción de texto plano

Page.GetText() devuelve el texto plano ensamblado de la página, en orden de lectura. Es la forma más sencilla de confirmar qué texto contiene realmente una página, por ejemplo, después de aplanar un campo o aplicar una redacción.

const page = doc.Pages[0];
console.log(page.GetText().includes('Internal memo'));

Texto estructurado

Page.GetStructuredText() extrae texto posicionado agrupado en líneas (por línea base) y bloques tipo párrafo (por espacio vertical y alineación del borde izquierdo), devolviendo TextBlock[] — útil cuando necesitas el diseño, no solo una cadena plana.


Introspección a nivel de glifo

visitContent(doc, page, visitor) recorre los flujos de contenido de una página — incluyendo en Form XObjects — y llama al manejador correspondiente en visitor para cada glifo, imagen o trayectoria que encuentra. El manejador glyph recibe un GlyphEvent: el text del glifo, su quad en espacio de dispositivo, fontSize, color, y campos de procedencia como mcid (su elemento de contenido marcado contenedor, si lo hay) y artifact (verdadero cuando se dibuja dentro de un ámbito /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);

Consejos y Mejores Prácticas

  • Utilice Page.GetText() para una comprobación rápida de presencia/ausencia; utilice visitContent() con un manejador glyph cuando necesite la posición exacta, el tamaño de fuente o el color de cada glifo.
  • Verifique GlyphEvent.artifact para omitir contenido decorativo (elementos de página, fondos) que un documento etiquetado marca como /Artifact en lugar de contenido real.
  • GlyphEvent.mcid enlaza un glifo a su elemento estructural contenedor cuando el documento está etiquetado — combine con Structure para recorrer desde un glifo hasta su elemento lógico.
  • Page.GetStructuredText() agrupa los glifos en bloques por usted; recurra a visitContent() directamente solo cuando necesite detalles por glifo que GetStructuredText() no expone.

Problemas Comunes

ProblemaCausaCorrección
Page.GetText() falta texto que es visible en la páginaEl texto se dibujó como rutas vectoriales o como una imagen en lugar de operadores reales de visualización de glifosUtiliza visitContent() con un path / image manejador para confirmar qué tipo de contenido lo dibujó realmente
El manejador glyph de visitContent() se dispara para texto decorativo de fondoNo se verificó GlyphEvent.artifactOmitir eventos donde e.artifact sea true
El texto extraído está fuera del orden visual de lecturaEl ensamblaje simple de GetText() no reconstruye el diseño multicolumnaUtiliza Page.GetStructuredText(), que agrupa el texto en bloques conscientes del diseño

FAQ

¿Cuál es la diferencia entre GetText y GetStructuredText?

GetText() devuelve una cadena plana del texto ensamblado de la página. GetStructuredText() devuelve TextBlock[] — texto agrupado en líneas y bloques tipo párrafo por línea base y diseño, útil cuando la posición importa.

¿Cómo obtengo la posición exacta y el tamaño de fuente de cada carácter?

Llame a visitContent(doc, page, { glyph: (e) => ... }). Cada GlyphEvent lleva el text del glifo, quad en espacio de dispositivo, fontSize, color y la línea base angle.

¿Puedo saber si un fragmento de texto es contenido real o decoración?

Sí — GlyphEvent.artifact es true cuando el glifo se dibujó dentro de un alcance de contenido marcado /Artifact, la misma distinción Document.AutoTag() usa al decidir qué etiquetar.

¿La extracción de texto ve contenido dentro de Form XObjects?

Sí — visitContent() entra en Form XObjects como parte de su recorrido, por lo que los glifos dibujados a través de un formulario reutilizado siguen siendo visitados.


API Reference Resumen

Clase/MétodoDescripción
Page.GetText()El texto plano ensamblado de la página, en orden de lectura
Page.GetStructuredText()Texto agrupado en líneas y bloques tipo párrafo (TextBlock[])
visitContent()Recorre el contenido de una página, emitiendo eventos de glifo/imagen/ruta con procedencia
GlyphEventUn glifo posicionado: text, quad, fontSize, color, mcid, artifact

Ver también

 Español