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; utilicevisitContent()con un manejadorglyphcuando necesite la posición exacta, el tamaño de fuente o el color de cada glifo. - Verifique
GlyphEvent.artifactpara omitir contenido decorativo (elementos de página, fondos) que un documento etiquetado marca como/Artifacten lugar de contenido real. GlyphEvent.mcidenlaza 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 avisitContent()directamente solo cuando necesite detalles por glifo queGetStructuredText()no expone.
Problemas Comunes
| Problema | Causa | Corrección |
|---|---|---|
Page.GetText() falta texto que es visible en la página | El texto se dibujó como rutas vectoriales o como una imagen en lugar de operadores reales de visualización de glifos | Utiliza 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 fondo | No se verificó GlyphEvent.artifact | Omitir eventos donde e.artifact sea true |
| El texto extraído está fuera del orden visual de lectura | El ensamblaje simple de GetText() no reconstruye el diseño multicolumna | Utiliza 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étodo | Descripció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 |
GlyphEvent | Un glifo posicionado: text, quad, fontSize, color, mcid, artifact |