hero_picture

Linuxサーバーでpdftkを使ってpdfファイルを結合

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アプリを作ってみるのも面白いかもしれないですね。