Obtener los campos de un formulario pdf desde la terminal
El otro día estaba teniendo problemas en el trabajo para mostrar en un fdf (formulario pdf) el contenido de un registro de la base de datos.
Extrañado de que funcionase el procedimiento en otros pdfs similares y sin ganas de buscar e instalarme Adobe Acrobat en una máquina virtual (de licencias ni hablamos) tuve el impulso de buscar en el blog los artículos que tenía sobre el tema pensando que ya lo había tratado con anterioridad. Para mi sorpresa no lo tenía y, defraudado de no encontrar la información que necesitaba en mi “cuaderno de notas” compartido (es como me gusta ver el blog) he optado por publicar cómo se hace.
Por cierto, lo más parecido que encontré es este artículo en el que explico cómo cargar con datos un pdf desde la línea de comandos (mi confusión venía pensando que había explicado en él como se obtienen los campos del pdf para generar automáticamente el xml)
Para conocer los campos editables que hay en un pdf utilizaremos el comando pdftk que se encuentra, en Archlinux, en el paquete del mismo nombre (para otras distribuciones, aquí podréis encontrar el paquete para vuestra distribución)
Lo instalaremos con un
yaourt -S pdftk
Para obtener los campos de cualquier formulario pdf lanzaremos un
pdftk /tmp/ejemplo.pdf dump_data_fields
donde:
- /tmp/ejemplo.pdf es el fichero cuyo contenido deseamos conocer
- dump_data_fields es el parámetro que le indica que vuelque los nombres (y algunos datos adicionales) de los campos del FDF.
Si en lugar de mostrarlo por pantalla, quieres volcar la información en un fichero, lanza el comando del siguiente modo
pdftk /tmp/ejemplo.pdf dump_data_fields output /tmp/campos_ejemplo.lst
NOTA: Observa que lo único que cambia es el uso del parámetro ouput y la ruta al fichero de salida
En cualquiera de los dos casos obtendremos algo parecido a lo que se observa en la siguiente captura de pantalla

Conclusión
Modo rápido, sencillo y económico de obtener información de los documentos PDF de Acrobat.
La próxima vez que busque la “chuleta” en el blog fijo que la encuentro


















Trackbacks / Pingbacks