2009-05-26 14 views
13

Voglio scrivere uno script per rinominare automaticamente i fogli scaricati con i loro titoli automaticamente, mi chiedo se non ci sono librerie o trucchi che posso usare? I PDF sono tutti generati da TeX e dovrebbero avere alcune strutture "formali".Estrazione di titoli da file PDF?

+0

Dove si ottiene il titolo PDF da? Queste informazioni devono essere estratte dalle proprietà del documento PDF o dai contenuti PDF o stai estraendo tali informazioni da un'altra fonte? – Rowan

+0

Possibile duplicato di [Estrazione di informazioni da PDF di documenti di ricerca] (http://stackoverflow.com/questions/1813427/extracting-information-from-pdfs-of-research-papers) – Seanny123

risposta

13

Si potrebbe provare a utilizzare pyPdf e this example.

ad esempio:

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

per me 'title = untitled' – ar2015

+0

pyPdf .utils.PdfReadError: indicatore EOF non trovato – Victor

2

Probabilmente inizierei con perl (visto che è sempre la prima cosa che raggiungo). Ci sono several modules for handling PDFs. Se si dispone di una struttura coerente, è possibile utilizzare regex per aggirare i titoli.

0

assumendo che tutte queste carte sono da arXiv, si potrebbe invece estrarre l'id arXiv (direi che la ricerca di "arXiv:" nel testo del PDF rivelerebbe costantemente l'id come primo hit).

Una volta ottenuto il numero di riferimento arXiv (e hanno fatto un pip install arxiv), è possibile ottenere il titolo utilizzando

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