Извлечение заголовков из файлов PDF?

Я хочу написать script, чтобы автоматически переименовать загруженные документы с их заголовками, мне интересно, есть ли какая-нибудь библиотека или трюки, которыми я могу воспользоваться? Все файлы PDF генерируются TeX и должны иметь некоторые "формальные" структуры.

Ответы

Ответ 1

Вы можете попытаться использовать pyPdf и этот пример.

, например:

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')

Ответ 2

Я бы, наверное, начинал с perl (видя, что это всегда первое, что я достигаю). Существуют несколько модулей для обработки PDF файлов. Если у вас есть согласованная структура, вы можете использовать регулярное выражение для удержания заголовков.

Ответ 3

Вы можете использовать iText с Jython

Ответ 4

Предполагая, что все эти документы взяты из arXiv, вы могли бы извлечь идентификатор arXiv (я бы предположил, что поиск "arXiv:" в тексте PDF будет постоянно показывать идентификатор как первый хит).

Как только у вас есть ссылочный номер arXiv (и выполнил pip install arxiv), вы можете получить заголовок, используя

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