PDFの分割(抽出)と結合
poppler-utilsを使う方法
インストール
$ sudo apt install poppler-utils
分割
sample.pdfの2ページ目から4ページ目を抽出して、
それぞれを、2.pdf, 3.pdf, 4.pdfとして保存する。
$ pdfseparate -f 2 -l 4 sample.pdf %d.pdf
2ページ目から最後のページを抽出したい場合は、
「-l」オプションを省略すればいい。
$ pdfseparate -f 2 sample.pdf %d.pdf
保存するファイル名の数字の部分を2桁にしたい場合は
「%02d」とする。
$ pdfseparate -f 2 sample.pdf %02d.pdf
結合
2.pdf, 3.pdf, 4.pdfの3つのファイルを結合して、
out.pdfとして保存する。
$ pdfunite 2.pdf 3.pdf 4.pdf out.pdf
あるファイルで実行したら、下記のエラーが出力されて、結合に失敗した。
Unimplemented Feature: Could not merge encrypted files ('2.pdf')
qpdfというツールで暗号化の解除を行ったら成功した。
PDFの暗号化というものが何なのかはよく分からない。
qpdfのインストールと実行
その後、分割と結合
$ sudo apt install qpdf $ qpdf --decrypt sample.pdf dec.pdf $ pdfseparate -f 2 -l 4 dec.pdf %d.pdf $ pdfunite 2.pdf 3.pdf 4.pdf out.pdf
cpdfを使う方法
インストール
下記のページから「cpdf」の実行ファイルをダウンロードする。
cpdf-binaries/cpdf at master · coherentgraphics/cpdf-binaries · GitHub
ダウンロードしたcpdfに実行権限を付与する。
$ chmod u+x cpdf
sample.pdfの2ページ目から4ページ目を抽出して、out.pdfとして保存する。
$ ./cpdf sample.pdf 2-4 -o out.pdf
実行したら、下記のエラーが出た。
You must supply -recrypt here, or provide the owner password.
下記のように「-recrypt」というオプションをつけたら、成功した。
意味は分からない。
./cpdf sample.pdf 2-4 -recrypt -o out.pdf
飛び飛びのページを抽出することもできる。
1ページ、3ページ、5ページを抽出する。
$ ./cpdf sample.pdf 1,3,5 -o out.pdf
分割
sample.pdfの各ページをそれぞれ別のファイルに保存する。
1ページ目→out01.pdf
2ページ目→out02.pdf
$ ./cpdf -split sample.pdf -o out%%.pdf
下記のエラーが出た。
User password cannot give permission for this operation
qpdfで暗号化の解除をしてから実行したら成功した。
$ qpdf --decrypt sample.pdf dec.pdf $ ./cpdf -split sample.pdf -o out%%.pdf
結合
out01.pdf, out02.pdf, out03.pdfの3ファイルを結合して、
out.pdfとして保存する。
$ ./cpdf -merge out01.pdf out02.pdf out03.pdf -o out.pdf