2009-05-26 10 views
13

Quiero escribir un script para cambiar el nombre de los documentos descargados con sus títulos automáticamente, me pregunto si hay alguna biblioteca o trucos que pueda utilizar. Los PDF son todos generados por TeX y deben tener algunas estructuras 'formales'.¿Extracción de títulos de archivos PDF?

+0

¿De dónde obtiene el título de los archivos PDF? ¿Es necesario extraer esa información de las propiedades del documento PDF o del contenido de PDF o está extrayendo esa información de alguna otra fuente? – Rowan

+0

Posible duplicado de [Extraer información de archivos PDF de trabajos de investigación] (http://stackoverflow.com/questions/1813427/extracting-information-from-pdfs-of-research-papers) – Seanny123

Respuesta

13

Puede intentar usar pyPdf y this example.

por ejemplo:

from pyPdf import PdfFileWriter, PdfFileReader 

def get_pdf_title(pdf_file_path): 
    with open(pdf_file_path) as f: 
     pdf_reader = PdfFileReader(f) 
     return pdf_reader.getDocumentInfo().title 

title = get_pdf_title('/home/user/Desktop/my.pdf') 
+0

para mí 'title = untitled' – ar2015

+0

pyPdf .utils.PdfReadError: marcador EOF no encontrado – Victor

2

Probablemente comenzaría con perl (ya que siempre es lo primero que busco). Hay several modules for handling PDFs. Si tiene una estructura consistente, podría usar expresiones regulares para enganchar los títulos.

0

suponiendo que todos estos documentos son de arXiv, en su lugar podría extraer el identificador de arXiv (supongo que la búsqueda de "arXiv:" en el texto del PDF revelaría consistentemente la identificación como primer golpe).

Una vez que tenga el número de referencia arXiv (y ha hecho un pip install arxiv), se puede obtener el título utilizando

paper_ref = '1501.00730' 
arxiv.query(id_list=[paper_ref])[0].title