複数ページの PDF をまとめてラスタライズするのは意外に手間がかかる。

GhostscriptImageMagick を使うと、コマンド一撃でできる。

$ gs -dNOPAUSE -r300 -dBATCH -sDEVICE=png16m -sOutputFile="tmp-%02d.png" <入力となるPDF> && convert -density 300 tmp-*png <出力するPDF> && rm tmp-*png

Ghostscript, ImageMagick ともに、 Brew でも apt でもインストールできる。

何に使う?

今年の4月にこんな事件があった。覚えている人もいるだろう。

法務省入国管理局が外国人の在留資格などを審査する職員用マニュアルを情報公開請求で開示した際、電子データの黒塗り部分が外せる状態でインターネット上に流出していたことが分かった。立憲民主党の初鹿明博衆院議員の質問主意書に対し、政府が27日に閣議決定した答弁書で明らかにした。
同省によると、通常は黒塗りした電子データ(PDF)を紙に印刷した上で、改めてPDF化する。今回はその作業を怠り文書ソフト上で処理したため、黒塗りが外せる状態となった。(2018/04/27-12:24)

引用元: 黒塗り外し文書、ネットに流出=入管が作業怠り

この種の事件はもちろんはじめてではなく、過去に何例も存在する。

なぜこんなことが起きるか

PDF は本来的にはベクターデータを扱うフォーマット。

これを考えずに、PDF を Mac のプレビューアプリとかで適当に黒塗りすると、 Adobe Acrobat を使えば普通に黒塗りを削除できてしまう[1]

ラスタライズしてしまえば、こういうことは起きない。

逆に Adobe Acrobat を使うと、ラスタライズしなくてもこういうことが起きないように黒塗りすることもできる。しかしこんなことのために Adobe Acrobat を使うのは苦痛だと思うのが普通だろう。

その他の利用方法

上述の利用方法以外に、複数ページの PDF をまとめてラスタライズしたいときにも使える。


  1. この辺のことは解説している記事がたくさんあるので詳しくは書かない。 ↩︎