Как извлечь первые 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"' {} \;
Просто откройте окно терминала в базовой папке (той, которая содержит все подпапки) и скопируйте и вставьте всю однострочную команду, приведенную выше. Будет:
- Обходите все подпапки и идентифицируйте все PDF-файлы.
- Извлеките страницы 3-10 из каждого (используя ваш пример команды)
- Дайте разумное имя выходного файла: оригинальное имя с
_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 в временную папку.