前回に続いて「pdftk」を利用したPDFハンドリング術を紹介する。Preview.appでは難しいPDFの加工/編集、ウォーターマークの追加など、実用的な活用テクニックのあれこれを参考にしてほしい。
特定のページを抽出する
PDFの特定ページを抽出する場合には、内部コマンド「cat」を利用する。前回、すべてのページを抽出するときには「burst」を利用したが、「cat」ではページ番号を引数に与えることができる。たとえば、「cat 1 5」とすれば1ページと5ページを、「cat 2-6」とすれば2ページから6ページの計4ページを抽出したPDFを作成できる。なお、ページ番号の代わりに「odd」を指定すれば奇数ページを、「even」を指定すれば偶数ページを抽出することも可能だ。
$ pdftk MYNAVI.pdf cat 2 5 output out.pdf
ページを逆順に並び替える
ページの並び替えも、内部コマンド「cat」を使うとかんたんに実行できる。以下のコマンド実行例では、ページの並び替えを最終ページから先頭ページへと逆転させている。ここでは最終ページを意味する文字列として「end」を利用しているが、代わりに「r1」を利用してもいい。最後から2ページ目が「r2」、3ページ目が「r3」のように使用することもできるので、あわせて利用したい。
$ pdftk MYNAVI.pdf cat end-1 output out.pdf
ページを回転する
前述した内部コマンド「cat」は、抽出したいページ番号にオプションを添えると回転した状態でページを抽出できる。たとえば、奇数ページを抽出すると同時に時計回りに90度回転させたレイアウトに変更したいときには、以下の要領でコマンドを実行してみよう。すべてのページを対象としたければ、「1-endright」や「1-endleft」などと指定すればいい。
なお、利用できる回転オプションは表1のとおり。多くの場合、「right」か「left」で足りてしまうが、角度は90度単位で自由自在だ。
$ pdftk MYNAVI.pdf cat oddright output out.pdf
回転オプション | ||
回転 | 方角指定 | 向き指定 |
0 | north | - |
90 | east | right |
180/+180 | south | down |
270/-90 | west | left |
複数のPDFの"欲しいページだけ"結合する
$ pdftk A=MYNAVI.pdf B=PR_01.pdf cat B2-3 A3-5 output ot.pdf
透かし入りのPDFを作成する
本文に重なるよう「DRAFT」や「コピー禁止」などの文字を差し込むウォーターマーク(透かし)は、ビジネス文書におけるニーズが高い。だから有償のPDF編集ツールのなかにはウォーターマーク機能を備えるものも多いが、Preview.appにはこれがない(署名機能を使えばできないことはないが)。
pdftkの開発元では、このウォーターマーク機能を有償オプションとして提供しているが、標準の機能をうまく組み合わせれば同じことができてしまう。「コピー禁止」などウォーターマークとして使いたい文字列を、背景が透明のPDFとして用意する必要はあるが、これさえクリアできればOKだ。
使いかたはかんたん、最初の引数にウォーターマークとして使用する(最前面に表示する/背景が透けている)PDFを与え、内部コマンド「background」に続けて本文のPDFを、output以降に書き出すPDFをそれぞれ指定すればいい。たとえば、以下のコマンド実行例では、本文のPDF(IN.pdf)にウォーターマーク(watermark.pdf)を重ね、out.pdfに書き出している。
$ pdftk watermark.pdf background IN.pdf output out.pdf
ただし、前掲の方法では出力されるページは1枚のみとなってしまう。すべてのページへ(スタンプを押すように)ウォーターマークを重ねて出力するには、内部コマンド「stamp」を利用したほうがいい。今度は最初の引数に本文のPDFを指定することに注意しよう。
$ pdftk MYNAVI.pdf stamp watermark.pdf output out.pdf