
Tengo miles de archivos PDF científicos a los que necesito cambiarles el nombre, muchos de ellos no tienen metadatos. Me gustaría poder crear una acción de automatización que pudiera abrir una carpeta, luego abrir cada PDF, copiar el título, cambiar el nombre del documento y guardarlo en una nueva carpeta. He pasado horas tratando de resolver esto, por lo que agradecería mucho cualquier ayuda. Tengo un quad Apple G5 2.26Gz con os10.6 ¡Gracias!
Respuesta1
Haymendeley, una herramienta de investigación online que permite gestionar publicaciones científicas.
Tiene una herramienta Mendeley Desktop donde puedes arrastrar y soltar archivos PDF. Mendeley analizará automáticamente los autores y títulos de los archivos PDF.
Luego, puede cambiar el nombre del archivo haciendo clic derecho y "Cambiar nombre de archivos de documentos ...". También puedes cambiar el nombre de varios archivos a la vez.
Está disponible para Windows y OS X.
Respuesta2
Si te entiendo bien, desea extraer el título del artículo que está presente en la primera página del PDF (generalmente en letra más grande que el resumen y el texto siguiente) y usarlo como nombre de archivo.
Me temo que probablementeno encontrará una solución única para todos, ya que puede haber cantidades variables de texto que no sea el título al principio del PDF, lo que dificulta la extracción del título real de los PDF provenientes de diferentes revistas.
PARA obtener una solución que funcione para un cierto porcentaje de sus archivos PDF,Yo probablemente
- utilice pdf2ps y ps2ascii de Ghostscriptpara extraer texto plano del PDF
- analizar este texto sin formato para el título de una revista en algún lugar del primer kilobyte más o menos
- Dependiendo de la revista, intente idear una heurística que extraiga el título del artículo del texto sin formato.
Por supuesto, si puede encontrar una herramienta que pueda extraer el tamaño relativo del texto, así como el texto sin formato de un PDF, probablemente también sería de gran ayuda.
Buena suerte. ¡Sería interesante ver si encuentras una manera de automatizarlo! Lo principal que hago cuando descargo artículos es nombrarlos de forma sistemática, pero seguro que sería genial tener algo que hacer esto después...
Respuesta3
Si no desea utilizar software externo y tiene ganas de escribir su propio guión, intente abrir sus archivos PDF como texto sin formato con un editor de texto y luego busque patrones. Busque la palabra clave "título" o busque palabras en el título y vea dónde aparecen.
Por ponerte algunos ejemplos (revistas científicas de química):
ACS (American Chemical Society): el título aparece entre paréntesis después de la segunda aparición de la palabra clave '/title'
Publicación Wiley: el título aparece entre corchetes después de la primera (y única) aparición de la palabra clave '/Título'
Editorial rsc: no tiene el título en texto plano.
Springer: parece depender de la revista
Dado que la mayoría de las revistas que leo son de wiley o acs, la situación me parecería bastante buena.
Este podría ser un plan: 1. estudiar los archivos PDF de las editoriales de las que lee las revistas con más frecuencia 2. seleccionar aquellos que tengan el título en texto plano. esto no debería ser un problema ya que todos incluyen su nombre en los últimos Kbytes del pdf 3. administrarlos con un script
Dependiendo de cuántas revistas lea, use la etiqueta de título para el título del artículo, esto podría ser útil o no.
Un enfoque más general sería: pdf->text->parse text. Puedes empezar desde aquí: https://stackoverflow.com/questions/25665/python-module-for-converting-pdf-to-text
Respuesta4
Hay un módulo de Pythontítulo pdf · PyPIque extrae el título.
Uso:
$ pdftitle -p 1506.01186.pdf --replace-missing-char ' '
Cyclical Learning Rates for Training Neural Networks
Se recomienda utilizar --replace-missing-char
la opción; de lo contrario, puede fallar, por ejemplo,https://arxiv.org/pdf/1506.01186.pdf. Debido a que los caracteres que faltan tienden a no estar en el título, no afectará la calidad del resultado.
Dado el título, debería ser bastante fácil escribir un script para cambiar el nombre por lotes.
Enlaces a preguntas relacionadas: