Ir al contenido

PDF Get Words

Tipo: pdf-get-words  ·  Paquete: PDF Activities v1.2.4  ·  Salida: List

Desde: v1.1.0

Extrae todas las palabras del PDF junto con su página y su caja delimitadora (posición y tamaño). Es la versión “con posición” de PDF Get Text: en vez de un bloque de texto, te dice dónde está cada palabra dentro de la página.

Recorre las páginas indicadas en orden ascendente y devuelve una lista plana de palabras (no agrupadas por página ni por línea): cada elemento lleva su propio número de página. Para ordenarlas por línea, usa y y luego x. No modifica el archivo.

Las coordenadas usan origen arriba-izquierda — el mismo que las imágenes y el OCR. Así, las palabras que devuelve esta actividad y las líneas que devuelve OCR Get Lines hablan el mismo idioma, y puedes localizar un valor en la página venga de donde venga.

Por defecto las coordenadas salen en puntos PDF (un punto es 1/72 de pulgada; una hoja A4 mide unos 595 × 842 puntos). Si indicas dpi, salen en píxeles de un render a esa resolución (puntos × dpi / 72): eso hace que cuadren con los archivos que genera PDF To Images al mismo dpi, y puedes recortar o dibujar sobre la imagen usando estas coordenadas directamente.

ParámetroTipoPor defectoDescripción
pathstring—Ruta del archivo PDF.
ParámetroTipoPor defectoDescripción
pagesstring | List"all"Páginas a leer: "all" o un rango como "1-3,5,7-9", o una lista de números como la de PDF Search Text. Desde la versión 1.2.4.
dpiint—Si lo indicas, las coordenadas salen en píxeles de un render a esa resolución (cuadran con PDF To Images al mismo DPI). Sin valor, en puntos PDF. Entero entre 36 y 1200.

Devuelve una List de diccionarios, una entrada por palabra:

ClaveTipoQué es
textstringLa palabra.
pageintNúmero de página (desde 1).
xnumberDistancia desde el borde izquierdo de la página hasta el inicio de la palabra.
ynumberDistancia desde el borde superior de la página hasta el borde superior de la palabra.
widthnumberAncho de la palabra.
heightnumberAlto de la palabra.

Las cuatro medidas van en puntos PDF, o en píxeles si indicaste dpi, y tienen decimales. Si las páginas no tienen texto, la lista sale vacía.

[
{ "text": "TOTAL", "page": 1, "x": 72.0, "y": 640.5, "width": 38.2, "height": 9.1 },
{ "text": "1.250.000", "page": 1, "x": 450.3, "y": 640.5, "width": 52.8, "height": 9.1 }
]
MensajeCausa y solución
Página(s) fuera de rango: …. El documento tiene … páginas.El rango pide páginas que no existen.
'dpi' debe ser un número entero. Se recibió: ….dpi no es un entero (p. ej. "200.5" o un texto).
'dpi' debe estar entre 36 y 1200. Se recibió: ….Resolución fuera del rango admitido.
No se encontró el archivo. / 'path' es obligatorio.Ver Errores comunes del paquete.
Error de la biblioteca de PDF al abrir el archivoPDF protegido con contraseña o dañado. Ver PDF protegidos y dañados.

Renderizar el PDF y extraer las palabras con coordenadas que casan con las imágenes:

PDF To Images path = rutaFactura outputDir = "C:/temp/paginas" dpi = 200 → output: imagenes
PDF Get Words path = rutaFactura dpi = 200 → output: palabras
Log message = "Palabras: " + count(palabras)

Localizar dónde aparece un valor en la página:

PDF Get Words path = ruta pages = "1" → output: palabras
For Each items = palabras itemVariable = palabra
└─ activities:
If condition = palabra["text"] == "TOTAL"
└─ then:
Log message = "TOTAL está en x=" + palabra["x"] + " y=" + palabra["y"]