Автоматическое переименование PDF-файлов на основе заголовка

Автоматическое переименование PDF-файлов на основе заголовка

У меня есть тысячи научных PDF-файлов, которые мне нужно переименовать, во многих нет метаданных. Я хотел бы иметь возможность создать действие автоматизатора, которое могло бы открыть папку, затем открыть каждый PDF-файл, скопировать заголовок, переименовать документ и сохранить в новой папке. Я потратил часы, пытаясь разобраться с этим, поэтому буду очень признателен за помощь. У меня Apple G5 2.26Gz quad под управлением os10.6 Спасибо!

решение1

ЕстьМенделей, онлайн-инструмент для исследований, позволяющий управлять научными публикациями.

В нем есть инструмент Mendeley Desktop, куда можно перетаскивать PDF-файлы. Mendeley автоматически анализирует авторов и заголовки из PDF-файлов.

введите описание изображения здесь

Затем вы можете переименовать файл, щелкнув правой кнопкой мыши и выбрав «Переименовать файлы документов...». Вы также можете переименовать несколько файлов одновременно.

введите описание изображения здесь

Доступно для Windows и OS X.

решение2

Если я правильно вас понял, вы хотите извлечь название статьи, которое присутствует на первой странице PDF-файла (обычно более крупным шрифтом, чем аннотация и последующий текст), и использовать его в качестве имени файла.

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

ЧТОБЫ получить решение, которое будет работать с определенным процентом ваших PDF-файлов,Я бы, наверное,

  • используйте pdf2ps и ps2ascii от Ghostscriptдля извлечения простого текста из PDF-файла
  • проанализируйте этот простой текст на предмет названия журнала где-то в первом килобайте или около того
  • в зависимости от журнала попробуйте придумать эвристический алгоритм извлечения названия статьи из открытого текста.

Конечно, если вы сможете найти инструмент, который может извлекать из PDF-файла как относительный размер текста, так и простой текст, это, вероятно, также будет очень полезно.

Удачи - было бы интересно посмотреть, найдете ли вы способ автоматизировать это! Главное, что я делаю, когда сам загружаю статьи, это называю их систематическим образом, но было бы здорово иметь что-то, чтобы делать это потом...

решение3

Если вы не хотите использовать внешнее программное обеспечение и хотите написать свой собственный сценарий, попробуйте открыть ваши pdf-файлы как обычный текст с помощью текстового редактора, а затем поищите шаблоны. Либо выполните поиск по ключевому слову «название», либо найдите слова в названии и посмотрите, где они появляются.

Приведу несколько примеров (научные журналы по химии):

ACS (Американское химическое общество): название указывается в скобках после второго появления ключевого слова «/title»

Издательство Wiley: заголовок указывается в скобках после первого (и единственного) появления ключевого слова «/Title»

Издательство Rsc: не имеет названия в текстовом виде.

Springer: похоже, это зависит от журнала

Поскольку большинство журналов, которые я читаю, издаются издательствами Wiley или ACS, ситуация для меня выглядит довольно благоприятной.

Это может быть план: 1. изучить pdf-файлы издательств, журналы которых вы читаете чаще всего; 2. выбрать те, в которых заголовок указан обычным текстом. Это не должно быть проблемой, поскольку все они включают свое имя в последние килобайты pdf-файла; 3. управлять ими с помощью скрипта.

В зависимости от того, сколько журналов вы читаете, используйте тег title для заголовка статьи, это может быть полезно или нет.

Более общий подход будет таким: pdf->текст->анализ текста. Вы можете начать отсюда: https://stackoverflow.com/questions/25665/python-module-for-converting-pdf-to-text

решение4

Есть модуль Pythonpdftitle · PyPIкоторый извлекает заголовок.

Использование:

$ pdftitle -p 1506.01186.pdf --replace-missing-char ' '
Cyclical Learning Rates for Training Neural Networks

Рекомендуется использовать --replace-missing-charопцию, иначе может произойти сбой, например,https://arxiv.org/pdf/1506.01186.pdf. Поскольку отсутствующий символ, как правило, отсутствует в названии, это не повлияет на качество результата.

Учитывая название, написать скрипт для пакетного переименования должно быть довольно просто.


Ссылки на связанные вопросы:

Связанный контент