Jak wyodrębnić tylko niektóre strony z dokumentu i zapisać je w osobnym PDF?
pdftk
$ command -v pdftk
/usr/bin/pdftk
$ pdftk doc.pdf cat 12-14 output doc_12-14.pdf
qpdf
~$ command -v qpdf
/usr/bin/qpdf
Zachowaj metadane oryginału:
~$ qpdf doc.pdf --pages . 12-14 -- doc_12-14.pdf
$ pdfinfo men-out1.pdf
Title:
Creator: Adobe Acrobat 11.0.20
Producer: Adobe Acrobat 11.0.20 Image Conversion Plug-in
CreationDate: Tue Feb 9 18:44:55 2021 CET
ModDate: Tue Feb 9 18:44:55 2021 CET
[...]
Wyczyść wszystkie metadane:
$ qpdf --empty --pages doc.pdf 12-14 -- doc_12-14.pdf
$ pdfinfo men-out1.pdf
Custom Metadata: no
Metadata Stream: no
Tagged: no
UserProperties: no
Suspects: no
Form: none
JavaScript: no
Pages: 3
[...]
Ghostscript
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dFirstPage=12 -dLastPage=14 -sOutputFile=doc_12-14.pdf doc.pdf
GPL Ghostscript 10.03.1 (2024-05-02)
Copyright (C) 2024 Artifex Software, Inc. All rights reserved.
This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY:
see the file COPYING for details.
GPL Ghostscript 10.03.1: Destination page 1 lies outside the valid page range.
GPL Ghostscript 10.03.1: **** Warning: Outline has invalid link that was discarded.
Processing pages 12 through 14.
Page 12
Page 13
Page 14
[...]
cat ~/bin/pdfextract.sh:
#!/usr/bin/env bash
#
FIRST_PAGE=${1:?First page not set}
LAST_PAGE=${2:?Last page not set}
SRC=${3:?Source file not set}
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER \
-dFirstPage="${FIRST_PAGE}" \
-dLastPage="${LAST_PAGE}" \
-sOutputFile="${SRC%.pdf}_${FIRST_PAGE}-${LAST_PAGE}.pdf" \
"${SRC}"
$ pdfextract.sh 12 14 doc.pdf
Poppler
$ pdfseparate -f 12 -l 14 doc.pdf doc_%d.pdf
$ ls doc_*
doc_12.pdf doc_13.pdf doc_14.pdf
$ pdfunite doc_* doc_12-14.pdf