Adobe Proの手作業に限界を感じてPDF Maskerを作った話
給与明細やHR書類のように、レイアウトは同じで中身の個人情報だけが違うPDFが何十枚もある。住所やID番号を黒塗りしてから共有・保管する必要がある——という作業を何度かこなすうちに、はっきり無駄だと感じる瞬間があった。
1枚ずつ、Adobe Proで、同じ場所を、手で黒く塗っている。
この記事は、その非効率を解消するために作った PDF Masker の経緯をまとめたものだ。
Adobe Proでは「毎回手作業」から抜け出せない
Adobe Acrobat Proの黒塗り(Redaction)機能自体はよくできている。1枚のPDFに対して範囲を選んで消す、という操作は簡単だ。
問題は、同じレイアウトの書類が大量にあるときに起きる。
- 給与明細100人分。住所欄・口座番号欄の位置はどれも同じ
- それでもAdobe Proでは、1ファイルごとに範囲選択をやり直す必要がある
- 100枚あれば、同じマウス操作を100回繰り返す
Adobe Proはあくまで「1枚を丁寧に編集するツール」であって、「同じ処理を大量ファイルに繰り返すツール」ではない。ここにミスマッチがあった。
さらにもう一つ、見過ごせない問題があった。Adobe Proの黒塗りは、正しい手順を踏まないと文字レイヤーが残る。 黒い四角を上に重ねただけの状態だと、下のテキストをコピーすれば元の情報が読めてしまう。正式な「Redaction」機能を使えばこれは防げるが、操作を誤ると事故につながる余地が常にある。
欲しかったのは「爆速」と「確実さ」の両立
やりたかったことはシンプルだった。
- 座標を1回だけ決める — 同じレイアウトの書類なら、黒塗りする位置は毎回同じはず
- その設定を全ファイルに一括適用する — 100枚あっても実行は1回
- 文字レイヤーを物理的に消す — コピペで復元できない、本当の意味での黒塗り
- 外部サーバーに一切送らない — 個人情報を含む書類なので、クラウドサービスは選択肢にならない
Adobe Proの延長線上でこれを実現するのは難しい。だったら、自分の作業フローに合わせて小さなツールを作った方が早いと判断した。
設計 — 「一度決めて、あとは流すだけ」
PDF Maskerは、Python製の小さなツールキットとして作った。中心にあるのは、マスク座標を一度だけ作り、それをinput/フォルダの全PDFに機械的に適用するという発想だ。
1. マスク位置は目で選ぶ
mask_picker.pyを実行すると、GUIでPDFのページが開く。黒塗りしたい箇所をドラッグで矩形選択し、「address」「id_number」のようにラベルを付けるだけ。座標計算を手でやる必要はない。
結果はmask_coords.jsonに保存される。ここに残るのは座標とラベルだけで、実際の個人情報は一切含まれない。マスク位置の調整を誰かに相談したいときも、このファイルだけ安全に共有できる。
2. 文字レイヤーごと消す
単に黒い四角を重ねる方式は採用しなかった。PDF Maskerは各ページを画像としてラスタライズしてから黒塗りを描画し、その画像を新しいPDFとして再構築する。
処理が終わった時点で、ページの中に文字情報は存在しない。コピー&ペーストで復元される余地そのものをなくした。
3. 一括実行
座標が決まれば、あとはmain.pyを実行するだけ。input/フォルダの中の全PDFに同じマスクセットが適用され、output/フォルダに黒塗り済みのPDFが並ぶ。
100枚だろうと同じ1コマンドで終わる。ここが、Adobe Proの「1枚ずつ手作業」からの最大の違いだ。
使ったスタック
- PyMuPDF (
fitz) — PDFのページを画像に変換する - Pillow — 画像の上に黒い矩形を描画する
- Tkinter — 座標選択用の軽量GUI
すべてローカルで完結する構成にした。GUIが使えない環境向けに、座標グリッドをページ画像に重ねて手入力できるcalibrate.pyも用意している。
できあがったもの
結果として、以下のワークフローが手に入った。
input/フォルダにPDFを入れるmask_picker.pyで1枚だけ座標を決めるmain.pyを実行するoutput/フォルダに黒塗り済みPDFが全部揃っている
Adobe Proで100回繰り返していたドラッグ操作は、1回の座標決めと1回のコマンド実行に置き換わった。しかも文字レイヤーは物理的に消えているので、「本当に消えているか」を疑う必要もない。
まとめ
Adobe Proの黒塗り機能は、1枚を丁寧に処理するには十分だが、同じレイアウトの書類を大量に処理する用途には向いていない。そこに気づいてから、自分の作業に合わせた小さなツールを作る方が早いと判断した。
PDF Maskerはツールページから詳細を見られる。個人情報を含むPDFを外部に送りたくない人、同じ書式の書類を毎回手作業で黒塗りしている人には、特に刺さるはずだ。