Linux:pdftk・pdfをコマンドラインで編集
pdftk
$ sudo apt-get install pdftk
画像ファイルからPDFを作る。
テキストファイルをPDFにするときは、ps2pdfを使う。 PDFを画像ファイルにするときは、ImageMagick(convert)を使う。 PDFから画像を抜き出すときは、pdfimagesを使う。
使い方
単純な結合
b.pdf a.pdf の順番に結合(cat)して、new.pdf を生成
$ pdftk b.pdf a.pdf cat output new.pdf
挿入
a.pdf の3ページ目に b.pdf を挿入して new.pdf を作成
$ pdftk A=a.pdf B=b.pdf cat A1-2 B A3-end output new.pdf
複数のPDFファイルのページを指定して結合する
$ pdftk A=one.pdf B=two.pdf cat A1-7 B1-5 A8 output combined.pdf
ページの削除
3ページ目を飛ばしてoutput.pdfを生成
$ pdftk pdf_original.pdf cat 1-2 4-end output output.pdf
抽出
src.pdf の 5から6ページを抽出して new.pdf を作成
$ pdftk src.pdf cat 5-6 output new.pdf
5,11,20ページのみ抽出
$ pdftk src.pdf cat 5 11 20 output new.pdf
回転
全てのページを90°回転
$ pdftk src.pdf cat 1-endeast output new.pdf
はじめのページを90度回転
$ pdftk in.pdf cat 1E 2-end output out.pdf
抽出と回転を同時に
5から25ページの奇数ページを抽出し、270°回転(oddは奇数ページ,evenは偶数ページ)
$ pdftk src.pdf cat 5-25oddW output new.pdf
奇数ページを180度回転(shuffleは,ページを交互に配置しながら結合)
$ pdftk A=src.pdf shuffle AoddS Aeven output new.pdf
並べ替え
結合する順番を入れ替える
$ pdftk A=src1.pdf B=src2.pdf cat B A output new.pdf
ページを逆順に並べ替え
$ pdftk src.pdf cat end-1 output new.pdf
2ページ目と3ページ目を入れ替えてoutput.pdfを生成
$ pdftk pdf_original.pdf cat 1 3 2 4-end output output.pdf
分割
ページ毎に分割
$ pdftk src.pdf burst
ページ毎に分割(出力ファイル名を指定)
$ pdftk src.pdf burst output new_%02d.pdf output page_%02d.pdf => page_01.pdf, page_02.pdf, ... output %04d.pdf => 0001.pdf, 0002.pdf, ...
ページ回転のオプション
- N north : 0° - S south : 180° - E east : 90° - W west : 270° - L left : -90° - R right : +90° - D down : +180°
ページの指定方法
1-end (はじめから最後までのページ。つまりデフォルト) 1-6 (1~6ページ) 6-1 (1~6ページを逆順で) 4 (4ページ目だけ) 5 11 20 (5ページ、11ページ、20ページ) 1-6even (偶数ページの取得 → 2 4 6) 1-6odd (奇数ページの取得 → 1 3 5)
ファイルが複数ある場合は、A1-end とか B5-11 とかになる。 A1-end B1-end の場合は、cat だけ書けばよい。
入力ファイル名の指定
1. スペースで区切って複数指定
$ pdftk src1.pdf src2.pdf 操作 output new.pdf
2. ファイル名にハンドルを付けて指定
スペースで区切って複数のファイルを指定した場合,指定した順番に操作が実行される。 但し,ハンドルを付けることでこの順番を入れ替えたり出来る。 $ pdftk A=src1.pdf B=src2.pdf 操作 output new.pdf 例) src2.pdfを180度回転させて、src1.pdfと結合 $ pdftk A=src1.pdf B=src2.pdf cat A BS output new.pdf
3. ワイルドカードの指定
$ pdftk *.pdf 操作 output new.pdf
$ pdftk input_00??.pdf 操作 output 出力ファイル名
PDFのメタ情報を編集・削除する方法
メタ情報の抜き出し
$ pdftk in.pdf dump_data > meta.txt
メタ情報ファイル を編集する
InfoKey: メタ情報の項目 InfoValue: 項目の情報
メタ情報ファイル.txt の内容を PDF に適用して変換する
$ pdftk in.pdf update_info meta.txt output out.pdf
qpdf
$ sudo apt install qpdf
pdftk で "unknown.encryption.type.r" エラーが出る場合qpdfを使うと解決するかも。
pdfファイルの連結
$ qpdf EPSON001.PDF --pages EPSON001.PDF EPSON002.PDF EPSON003.PDF -- Eall.pdf
qpdf "熱管理計算法(3版1953)_菅原菅雄_1.pdf" --pages "熱管理計算法(3版1953)_菅原菅雄_1.pdf" "熱管理計算法(3版1953)_菅原菅雄_2.pdf" -- "熱管理計算法(3版1953)_菅原菅雄.pdf"
--pages と -- の間に書かれたファイルがその順で連結されて最後の引数のファイルが生成される。最初の引数(ここではEPSON001.PDF)は、ページデータ以外の情報(Creator, Producer, CreationDate, PDF versionなど)をそのファイルから引き継ぐことを意味する。連結するファイル以外を指定しても受け入れられる。引き継ぎたくない場合はファイル名の代わりに --empty と入れておく。
$ qpdf --empty --pages EPSON001.PDF EPSON002.PDF EPSON003.PDF -- Eall.pdf
ワイルドカードを使うと連番通りに連結する
$ qpdf --empty --pages EPSON*.PDF -- Eall.pdf