Back to Blog
PythonPDF業務効率化個人開発プライバシー

Adobe Proの手作業に限界を感じてPDF Maskerを作った話

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. 座標を1回だけ決める — 同じレイアウトの書類なら、黒塗りする位置は毎回同じはず
  2. その設定を全ファイルに一括適用する — 100枚あっても実行は1回
  3. 文字レイヤーを物理的に消す — コピペで復元できない、本当の意味での黒塗り
  4. 外部サーバーに一切送らない — 個人情報を含む書類なので、クラウドサービスは選択肢にならない

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も用意している。


できあがったもの

結果として、以下のワークフローが手に入った。

  1. input/フォルダにPDFを入れる
  2. mask_picker.pyで1枚だけ座標を決める
  3. main.pyを実行する
  4. output/フォルダに黒塗り済みPDFが全部揃っている

Adobe Proで100回繰り返していたドラッグ操作は、1回の座標決めと1回のコマンド実行に置き換わった。しかも文字レイヤーは物理的に消えているので、「本当に消えているか」を疑う必要もない。


まとめ

Adobe Proの黒塗り機能は、1枚を丁寧に処理するには十分だが、同じレイアウトの書類を大量に処理する用途には向いていない。そこに気づいてから、自分の作業に合わせた小さなツールを作る方が早いと判断した。

PDF Maskerはツールページから詳細を見られる。個人情報を含むPDFを外部に送りたくない人、同じ書式の書類を毎回手作業で黒塗りしている人には、特に刺さるはずだ。

Share:
View all posts