Как извлечь первые 10 страниц из каждого pdf файла папки

У меня есть 90 подпапок в папке. Каждая подпапка содержит файлы PDF. Всего PDF-файлов около 2200. Как я могу извлечь страницы с 3 по 10 из всех PDF-файлов?

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

pdftk *.pdf cat 3-10 output 3-10.pdf

2 ответа

Решение

Этот лайнер (разделенный на 2 строки для удобства чтения) был протестирован и хорошо работает в моей системе:

find . -name '*.pdf' -type f -exec bash -c \
'pdftk "$0" cat 3-10 output "${0%.pdf}_3-10.pdf"' {} \;

Просто откройте окно терминала в базовой папке (той, которая содержит все подпапки) и скопируйте и вставьте всю однострочную команду, приведенную выше. Будет:

  1. Обходите все подпапки и идентифицируйте все PDF-файлы.
  2. Извлеките страницы 3-10 из каждого (используя ваш пример команды)
  3. Дайте разумное имя выходного файла: оригинальное имя с _3-10 добавленной

И это должно аккуратно и экономно выполнить вашу цель...

Вариация:

При желании вы можете указать другое выходное местоположение для сбора всех измененных PDF-документов. Например, вы можете создать папку с именем ~/extracted и измените приведенную выше командную строку следующим образом:

find . -name '*.pdf' -type f -exec bash -c \
'pdftk "$0" cat 3-10 output "~/extracted/${0%.pdf}_3-10.pdf"' {} \;

И, таким образом, все измененные PDF-файлы появятся в ~/extracted,

Безграничные возможности:).

Вы можете использовать qpdf, так как pdftk больше не доступен в ubuntu bionic по умолчанию: find . -name '*.pdf' -type f -exec bash -c 'qpdf --empty --pages "$0" 3-10 -- "temp/${0%.pdf}_1.pdf"' {} \;

Это поместит новый pdf в временную папку.

Другие вопросы по тегам