Только для справки: вы также можете использовать Ghostscript:
gs \
-o removed-page-1-from-input.pdf \
-sDEVICE=pdfwrite \
-dFirstPage=2 \
/path/to/input.pdf
Однако pdftk
- лучший инструмент для этой работы (и уже рекомендованной вам).
Кроме того, эта командная строка Ghostscript может изменить некоторые свойства в вашем файле input.pdf, поскольку она по существу перегоняет его.Это может быть желаемым изменением или нет.Чтобы контролировать отдельные аспекты этого поведения (или подавлять некоторые из них), требуется более сложная командная строка с большим количеством параметров.
pdftk будет повторно использовать исходные объекты PDF для каждой страницы как есть.
Обновление
Ghostscript также имеет дополнительный параметр -dLastPage
.Вместе с -dFirstPage
это позволяет извлекать диапазоны страниц.
В новейших версиях указан новый параметр -sPageList
.Это можно использовать так:
-sPageList="1, 5-10, 12-"
для извлечения страниц 1, 5-10 и 12-последней из входного документа.Однако я (пока) лично не тестировал эту новую функцию и не уверен, насколько надежно она работает.
Для более старых версий Ghostscript (а также самой последней) она должна работать дляподача одного и того же входного PDF несколько раз с различными параметрами в один и тот же вызов GS для извлечения несмежных выборов страниц из документа.Вы даже можете комбинировать страницы из разных документов следующим образом:
gs \
-o selected-pages.pdf \
-sDEVICE=pdfwrite \
-dFirstPage=2 \
-dLastPage=2 \
in1.pdf \
\
-dFirstPage=10 \
-dLastPage=15 \
in1.pdf \
\
-dFirstPage=1 \
-dLastPage=1 \
in1.pdf \
\
-dFirstPage=4 \
-dLastPage=6 \
in2.pdf
Предостережения: Объединение страниц из разных документов, которые используют не встроенные шрифты или идентичныеимена шрифтов, но разные кодировки и / или разные подмножества (с одинаковыми префиксами имени шрифта) могут привести к неправильному PDF в результате.