¿Qué software necesito para convertir un pdf a texto que luego pueda procesarse usando expresiones regulares para extraer datos específicos?

Tengo un montón de archivos/formularios pdf que están todos en un formato estandarizado. Contienen información como el historial de versiones, el autor, quién firmó el documento y a qué documentos hace referencia. Necesito extraer esa información para alimentar una base de datos que contenga información sobre los documentos. Estoy bastante seguro de que podría hacer esto usando expresiones regulares, pero no estoy completamente seguro de cómo hacerlo. También me gustaría automatizar el proceso, de modo que cuando se creen nuevos documentos, se agreguen al sistema, y ​​también el sistema vea todos los documentos en una página web y extraiga la información.

En Linux, puede usar exiftoolpara extraer .pdfmetadatos y analizar su salida usando expresiones regulares. Por ejemplo, para encontrar Creatorde un dado .pdf: exiftool doc.pdf | grep "^Creator" | perl -pe 's,^Creator.+: (.*)$,\1,'. Para encontrar un autor:exiftool doc.pdf | grep "^Author" | perl -pe 's,^Author.+: (.*)$,\1,'
Sin embargo, parte de la información sobre el documento que necesito extraer no estará en los metadatos normales. Habrá una sección de texto en el propio documento, diciendo autorizado por: "" o Referencias: "". Necesita extraer el texto real del documento y extraer texto específico de eso.
Es posible convertir el .pdfdocumento a un archivo de texto. Después de hacer eso, debería ser posible extraer un fragmento de texto dependiendo de qué tan regular sea usando excesiones regulares. No especificó qué sistema operativo está usando, pero *nixes posible automatizar esto usando pdftotextla herramienta de línea de comandos y una combinación degrep/sed/cut/awk/perl
¿Cómo se vería la sintaxis para ese comando pdftotext cuando se usa?
¿Ha usado alguna línea de comandos de Linux? Úselo solo dice en man pdftotext: pdftotext [options] [PDF-file [text-file]]. También dice eso Pdftotext reads the PDF file, PDF-file, and writes a text file, text-file. If text-file is not specified, pdftotext converts file.pdf to file.txt. If text-file is ´-', the text is sent to stdout.. Entonces, por ejemplo: pdftotext <doc>.pdfproducirá <doc>.txten el mismo directorio.
He usado la línea de comando de Linux antes y usé bash, awk y sed. Un poco oxidado, pero todavía recuerdo lo básico. Solo estaba preguntando qué argumentos se aprobaron y cómo.
También podría buscarlo en la página de pdftotextmanual y aprenderlo mucho más rápido. Para descargar/cargar documentos desde/hacia un servidor web, puede usar scpsi el SSHacceso está habilitado o lftpextraer metadatos localmente y enviarlos a un servidor web. Deberá tener una lista de los documentos que ya procesó. Alternativamente, ni siquiera necesita descargar .pdfdesde el servidor web porque puede procesarlo directamente en el servidor web o montar un directorio remoto con sshfs.
Puede activar la operación de extracción de metadatos cada vez .pdfque se agrega un nuevo inotifymecanismo o algún tipo de devolución de llamada del servidor web o ejecutarlo regularmente mediante un crontabtrabajo. Todavía no estoy seguro de si prefiere *nixo Windows. Si prefieres esto último, no puedo ayudarte porque no lo uso. Por cierto : ya es demasiado para un comentario, así que si te gusta, lo convertiré en una respuesta y puedes aceptarlo.
@ArkadiuszDrabczyk eso sería bueno. Me preguntaba por qué no lo habías hecho.
Ah, y aunque uso windows más para uso general, esto es en linux

Respuestas (1)

Es posible convertir el .pdfdocumento a un archivo de texto. Después de hacer eso, debería ser posible extraer un fragmento de texto dependiendo de qué tan regular sea usando expresiones regulares. No especificó qué sistema operativo está usando, pero *nixes posible automatizar esto usando pdftotextla herramienta de línea de comandos y una combinación de grep/sed/cut/awk/perl.

Para descargar/cargar documentos desde/hacia un servidor web, puede usar scpsi el SSHacceso está habilitado o lftpextraer metadatos localmente y enviarlos a un servidor web. Deberá tener una lista de los documentos que ya procesó. Alternativamente, ni siquiera necesita descargar .pdfdesde el servidor web porque puede procesarlo directamente en el servidor web o montar un directorio remoto con sshfs. Puede activar la operación de extracción de metadatos cada vez .pdfque se agrega un nuevo inotifymecanismo o algún tipo de devolución de llamada del servidor web o ejecutarlo regularmente mediante un crontabtrabajo.

Todavía no estoy seguro de si prefieres *nixo Windows. Si prefieres esto último, no puedo ayudarte porque no lo uso.