黒く塗ったのに文字が読める──「見た目だけの墨消しPDF」の罠
PDFに黒い四角を重ねる墨消しは、コピー&ペーストで元の文字がそのまま読めることがあります。PDFが見た目とテキストデータを別々に持つ仕組みと、対象ページを画像化する方式が安全な理由を解説します。
契約書や見積書をPDFで社外に共有する前、氏名や電話番号の上に黒い四角を置いて「これで見えなくなった」と安心したことはないでしょうか。画面で見る限り、たしかに真っ黒に塗りつぶされています。
結論を先に書きます。
黒い四角を重ねただけの墨消しは、文字データそのものを消していません。PDFをコピー&ペーストしたり、テキスト検索をかけたり、プログラムで読み込んだりすると、塗ったはずの文字が丸ごと出てきます。安全に消すには、対象のページを画像に変換してから塗るという、少し力技に見える方法が必要です。
PDFの中では「見た目」と「文字データ」が別物
PDFという形式は、画面に表示する内容を大きく2種類の情報で持っています。
- 描画命令:どこに何色の図形・線・文字を置くか、というレイアウト情報
- テキストオブジェクト:コピーや検索の対象になる、文字そのもののデータ
黒い四角を上から描くというのは、この2つのうち描画命令を1つ追加しているだけです。もともとあったテキストオブジェクトは、黒い四角の下でそのまま生き続けています。画面上は隠れて見えなくなっていても、データとしては何も削除されていません。
このサイトのPDFツールを作る過程で実際に測定した例では、黒四角を描画する前後でテキスト抽出の結果はまったく同じ文字列のままでした。人の目には「消えた」ように映る処理が、機械が読む文字データには一切影響していないということです。
| 処理 | 見た目 | コピー・検索で読める内容 |
|---|---|---|
| 黒い四角を重ねるだけ | 黒く見える | 元の文字列がそのまま読める |
| 対象ページを画像化してから塗る | 黒く見える | 何も出てこない |
画像化という力技が「本当に消える」理由
見た目だけの墨消しに対して、対象ページを丸ごと画像(ビットマップ)に変換してから塗りつぶす方式は、原理からして違います。ページを画像にした時点で、そこにあったテキストオブジェクトは存在しなくなり、残るのは色のついたピクセルの集まりだけになります。塗った部分だけでなく、そのページの文字全体が「選択できない・検索できない・コピーできない」状態に変わるので、黒く塗った下にあった文字を復元する手がかり自体がなくなります。
もちろん代償もあります。画像化したページは文字として検索できなくなり、ファイルサイズも大きくなります。だからこそ、墨消しを指定したページだけを画像化し、それ以外のページは元のまま残す、という使い分けが現実的な落としどころになります。
送る前に、自分で読めるか確かめる
もっとも確実な確認方法は単純で、書き出したPDFを開いて、黒く塗った部分をドラッグして選択できるか試してみることです。文字が選択できてしまえば、それはまだ「見た目だけの墨消し」のままだということになります。
PDFの墨消しを整える は、指定したページを画像化してから塗りつぶす方式で作られていて、処理はすべてブラウザ内で完結しファイルはどこにも送信されません。書き出した後は、同じくブラウザ内で完結する**PDFの文字起こしを整える** に読み込ませて、黒く塗った部分の文字が抽出されてこないかを自分の目で確認しておくと、送信前の最後の確認としてかなり安心できます。社外に出す前のひと手間として、覚えておいて損はありません。