PDFの一部を、確実に隠す
契約書や申請書の氏名・住所を隠して提出したい。多くの人が、黒い四角を上に置いて塗りつぶします。それでは隠れていません。下の文字はPDFの中に残っていて、コピーすればそのまま読めます。実際に取り出した結果を先に見せます。作業はブラウザの中だけで完結し、書類はどこにも送信されません。
先に道具を見るなら——PDF JPG 変換/サンプルで試す
実測: 黒く塗ったPDFから、氏名も住所も電話も取り出せました
架空の契約書を作り、氏名・住所・電話の上に黒い矩形を重ねました。左が、その見た目です。
目では読めない(ように見える)
取り出せる文字は0
左のPDFから、文字を抽出する道具(pdftotext)で中身を取り出した結果です。
氏名 架空 太郎 住所 架空県サンプル市テスト町 9-99-9 電話 03-0000-0000
隠したはずの3項目が、そのまま出てきます。専用の道具が必要なわけでもありません。PDFを開いて、黒い部分をドラッグして選択し、コピーして貼り付けるだけでも同じことが起きます。
なぜ読めるのか——四角は「上に置いた」だけだから
PDFは、紙の写真ではありません。文字は文字として、図形は図形として、それぞれ別に記録されています。黒い矩形を重ねるという操作は、文字の上に不透明な図形を1つ足しただけです。下にある文字は消えていません。見えなくなっただけです。
だから、画面に表示するとき以外——コピー・テキスト抽出・全文検索・機械での読み取り——では、文字は最初から何も隠されていない状態で扱われます。この事故は自治体や企業の公開資料でも繰り返し起きています。
事故は2種類あります。対処も別です
ここが見落とされやすいところです。実際に検証していて、両方を踏みました。
| 事故 | 原因 | 対処 |
|---|---|---|
| 文字が取り出せてしまう | PDFの中に文字情報が残っている | 画像にする |
| 画面で読めてしまう | 隠した範囲が足りていない | 仕上がりを目で確認する |
画像化は「取り出し」を止めるだけで、「見える」は止めません。逆に、範囲をしっかり隠しても、画像化していなければ文字は取り出せます。両方やって、はじめて隠れます。
確実に隠す手順
-
PDFを画像にする
まずページを画像に変換します。この時点で文字は画素になり、PDFの中から文字情報が消えます。コピーしても検索しても、もう何も出てきません。
サンプルで試す → PDF JPG 変換をひらく → -
隠したい場所をなぞって潰す
画像になったページの、隠したい範囲をドラッグで指定します。方式は「モザイク」を、強さは「強」を選んでください。弱いぼかしは、元の文字を推定して復元できる可能性が指摘されています。
範囲は、文字より少し広めに取ってください。ちょうどの大きさで囲むと、端が一文字だけはみ出します。
画像 ぼかしをひらく → -
画像をPDFに戻す
提出先がPDFを求める場合は、隠し終えた画像をPDFに戻します。複数ページなら、順番に並べて1つのPDFにまとめられます。
画像 PDF 変換をひらく → -
仕上がりを、目で確認してから送る
できたPDFを開いて、隠した部分が全部潰れているかを見てください。とくに端です。ページが複数あるなら、全ページを見ます。ここを省くと、片方の事故だけ直った状態で配ることになります。
念のために文字が残っていないか確かめたいときは、そのPDFの黒い部分をドラッグして選択してみてください。選択できなければ、文字は残っていません。
この手順で作ったものが、最初に見せた右の画像です。同じ道具で文字を抽出したところ、取り出せた文字は0でした(空白を除く)。氏名も住所も電話も、もう取り出せません。
よくある質問
書類はどこかに送られますか?
送られません。読み込みから変換・目隠し・ダウンロードまで、すべてブラウザの中だけで処理します。契約書や申請書のような、外に出せない書類のためのやり方です。
Acrobatの「墨消し」機能とは違うのですか?
Acrobat Proの墨消し(Redaction)は、文字そのものをPDFから削除する専用機能です。正しく使えば確実で、文字を残しません。本ページの手順は、その機能を持っていない場合に、無料でブラウザだけで同じ結果を得るためのものです。
黒く塗るのではなく、白で塗ればいいのでは?
同じです。白い四角も「上に置いた図形」なので、下の文字は残ります。色は関係ありません。
画像にすると、文字がぼやけませんか?
2倍の解像度で変換するので、画面表示にも印刷にも耐えます。ただし文字を選択・検索することはできなくなります。それが「文字情報を消す」ということの裏返しです。
スキャンした書類(もともと画像のPDF)はどうなりますか?
もともと文字情報を持っていないので、取り出される心配はありません。範囲を隠すだけで十分です。ただし文字起こしで読み取れる状態ではあるため、隠す範囲は同じように広めに取ってください。