TOOLPIPO LAB PDF

PDFの黒塗りは本当に消えている?

PDFに黒い図形を重ねても、下の文字が残ることがあります。3種類の合成PDFを作り、見た目と文字抽出結果を比べました。

文字の上に黒い長方形を重ねたPDFと、元の文字を含まないPDFの表示・文字抽出結果の比較

結論

黒い図形を重ねても、元の文字層が残っていれば文字を取得できる場合があります。今回の合成PDFでは、見た目の黒塗りと文字の削除を分けて確認しました。

検証概要

検証日
検証条件
自作ファイル・条件・実測結果は本文に掲載
再現用ファイル
本文に作成条件・確認方法を掲載

黒い図形を重ねても、下の文字は残った

文字の上に黒い長方形を重ねたPDFでは、画面上は読めなくても元の文字を取り出せました。対象文字を初めから含まない比較用PDFからは取り出せませんでした。

黒い図形で隠しても、元の文字は消えません。

比較用PDFは、対象文字を初めから含まないファイルです。既存PDFに正式な墨消しを施した結果ではありません。

見た目が同じでも、文字を取り出せるかは違う

通常の文字入りPDFに加え、文字を黒い図形で隠したPDFと、対象文字を初めから含まないPDFを比べました。黒塗りに見える後の2種類でも、文字を取り出せるかどうかは異なります。

文字の上に黒い長方形を重ねたPDFと、元の文字を含まないPDFの表示・文字抽出結果の比較
現行fixtureの1ページ目をPDF.jsで描画。どちらも黒い矩形が見えますが、文字抽出結果は異なります。

黒塗り部分から、テスト用の文字を取り出せた

検証に使ったファイルと文字抽出の方法

リポジトリ内の tests/fixtures/pdf-redaction-checker/ にある固定fixtureを使いました。normal.pdf は Normal visible text 12345 を通常表示します。fake.pdf は Sample Secret 12345 を描いた後、同じ場所へ黒い長方形を重ねます。proper.pdf は黒い長方形だけを描き、対象文字を初めから含めません。

サイトのPDFチェッカーでも使うPDF.js 6.3.289で各PDFを開き、getTextContent() の結果を取得しました。これはPDFから抽出可能な文字を調べる方法で、OCRや画像中の文字認識ではありません。「text layer」はここではこの文字抽出結果を指し、PDFの独立したレイヤー構造を意味しません。

表示とPDF.js文字抽出の比較
テストPDF画面上文字抽出結果
通常文字(normal.pdf)文字が見えるNormal visible text 12345 を取得
文字+黒い長方形(fake.pdf)対象文字は見えないSample Secret 12345 を取得
黒い長方形のみ(proper.pdf)対象文字は見えない対象文字を取得しない

重要なのは2番目と3番目です。見た目は似ていますが、fake.pdf には文字を描く命令と矩形を描く命令の両方があり、proper.pdf には対象文字を描く命令がありません。図形を重ねる操作だけでは、先に配置された文字は消えません。

正式な墨消しとは別の話

Adobeの公式資料では、墨消し対象の内容を削除する処理と、メタデータなどの非表示情報を削除する処理が説明されています。見た目を覆うだけの操作とは区別が必要です。ただし今回の proper.pdf は、既存PDFへ墨消し機能を適用した検証結果ではなく、対象文字を初めから持たない比較用PDFです。特定製品の安全性を検証したものでもありません。

メタデータ、コメント、非表示レイヤー、添付などは今回の3種類の文字抽出比較では調べていません。共有前には別途確認が必要です。

ToolPipoでは何を確認できるか

PDF黒塗り・墨消し漏れチェッカーでは、濃色領域の下に抽出可能な文字が残る候補をブラウザ内で確認できます。手元のPDFで同じ問題が起きていないか調べるためのツールです。

OCRは不使用です。画像内の文字、画像化された情報、あらゆるPDF構造、メタデータ全体、添付、malwareや完全な安全性は判定しません。

候補が0件でも安全を保証しません。

PDF共有前に確認したいこと

  1. 黒い図形を重ねただけになっていないか。
  2. 黒塗り部分の下に抽出可能な文字が残っていないか。
  3. メタデータやコメントなどが残っていないか。
  4. 添付や非表示要素がないか。
  5. 最終保存したPDFを再度開き、共有する実ファイルを確認したか。

参考資料と制作方針

検証・編集方針はコンテンツ制作・計算検証方針をご覧ください。

自分のファイルで確認する

自分のファイルで確認する

関連する検証