どせいたんさき。

ナスダヨー

pdf のドキュメントの指定の場所を隠す

目的

pdf ドキュメントの一部分だけをマスクしたい.複数のページに似たような処理をするため GUI は使いたくない.コマンドラインスクリプトを流すだけで指定の場所が隠せるようにしたい.

解決方法

pdftkstamp コマンドを利用する.

pdftk input.pdf stamp overlay.pdf output output.pdf

ここで overlay.pdf はマスクに使う画像ドキュメントファイル.背景が透過でなければならない.もともとのドキュメントと同じサイズにしておけばマスクの位置はずれない.

背景透過の pdf ドキュメント作成には inkscape を利用した. OpenOffice (LibreOffice) だと背景透過の pdf を出力できないようだ.他に楽な方法があれば教えてください.

上記のコマンドだと pdf ドキュメントのすべてのページがマスクされる.指定のページだけをマスクしたい場合には以下のようにする.

pdftk input.pdf cat  1-10 output 001.pdf  # マスクしない
pdftk input.pdf cat 11-20 output x002.pdf # マスクする
pdftk input.pdf cat 21-30 output 003.pdf  # マスクしない

pdftk x002.pdf stamp overlay.pdf output 002.pdf # マスクをつける

pdftk 00?.pdf output output.pdf # ひとつにまとめる

あるいは input.pdf と同じページ数のマスク pdf ドキュメントを作成しておけば,以下のコマンドで上記コマンド群と同じ出力ファイルが得られる.

pdftk input.pdf multistamp overlay_multi.pdf output output.pdf

overlay_multi.pdf がマスク pdf ドキュメント.こちらも背景透過の pdf ドキュメントでなければならない.