Linuxサーバーでpdftkを使ってpdfファイルを結合
pdftkはO’Reilly の PDF Hacks でも紹介されている PDF 操作ツールです。
Linuxサーバーのコマンドにてpdfを変換させる必要が出てきたので検証しました。
比較を行ったわけではないのですが、かなり高速なようです。
インストール
各OSに対応したインストール方法が、公式サイトで提示されています。
http://www.pdflabs.com/docs/install-pdftk/
検証機はDebianの為、以下のコマンドでインストールできました
1apt-get install pdftk
コマンド例
以下の公式サイトの使用例を翻訳しました
全部ではないので詳細は以下を確認してください。
Pdftk Examples
http://www.pdflabs.com/docs/pdftk-cli-examples/
複数のPDFファイルを結合する。
(1.pdf 2.pdf 3.pdf が結合され 123.pdf が生成されます)
1pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf
複数のPDFファイルを結合する。(ハンドラー使用例)
(1.pdf 2.pdf が結合され 12.pdf が生成されます)
1pdftk A=1.pdf B=2.pdf cat A B output 12.pdf
複数のPDFファイルを結合する。(ワイルドカード使用)
(カレントディレクトリのpdfファイルが結合され combined.pdf が生成されます)
1pdftk *.pdf cat output combined.pdf
複数のPDFファイルのページを指定して結合する。(ワイルドカード使用)
(A(one.pdf)ファイルの1~7ページ、B(two.pdf)ファイルの1~5ページ、A(one.pdf)ファイルの8ページが順番に結合され
combined.pdfが生成されます。)
1pdftk A=one.pdf B=two.pdf cat A1-7 B1-5 A8 output combined.pdf
ページの指定方法は以下のような形です
11-end (はじめから最後までのページ。つまりデフォルト)
21-6 (1~6ページ)
36-1 (1~6ページを逆順で)
44 (4ページ目だけ)
55 11 20 (5ページ、11ページ、20ページ)
61-6even (偶数ページの取得 → 2 4 6)
71-6odd (奇数ページの取得 → 1 3 5)
はじめのページを90度回転
※ページ指定の後にEをつけると90度回転
1pdftk in.pdf cat 1E 2-end output out.pdf
すべてのページを180度回転
※ページ指定の後にSをつけると90度回転
1pdftk in.pdf cat 1-endS output out.pdf
回転の指定はN:0 E:90 S:180 W:270 L:-90 R:+90 D:+180です。
Rが右回転、Lが左回転と考えれば問題ないです。
上記のページの指定と併せて利用できます。
15-25oddE (奇数ページの取得 して90度回転)
PDF 暗号化。権限はすべて許可
1pdftk mydoc.pdf output mydoc.128.pdf owner_pw パスワード
PDF 暗号化。開いた時にパスワードをきかれる
1pdftk mydoc.pdf output mydoc.128.pdf owner_pw パスワード user_pw パスワード
PDFのmetaデータなどをテキストファイルにアウトプット
1pdftk mydoc.pdf dump_data output report.txt
感想
すごく強力なツールでした。
PHPなどから呼び出してpdf結合サービスなんてWEBアプリを作ってみるのも面白いかもしれないですね。