AIでPDFの墨消し候補を整理する方法|黒矩形・情報除去・配布確認を分ける

架空PDFの候補6件を整理し、黒矩形だけでは文字が残る反例を2種類の抽出で確認。候補、適用、保存、配布確認を分けます。

AIものさし編集部

AIでPDFの墨消し候補を整理するときは、隠したい箇所を見つけることと、PDFから対象情報を除去することを分けます。黒い図形を重ねるだけでは、元の文字データが残る場合があります。候補の一覧ができたことも、配布できるPDFが完成したこととは別です。

この記事では、架空の1ページPDFを想定して、除去候補・残す情報・判断保留を整理します。公式手順に基づく説明で、PDFの作成・抽出やAcrobatでの操作を実測した記事ではありません。

配布目的と、残す必要がある情報を先に決める

今回の架空の用途は、研修用サンプルの配布です。説明用の取扱条件として、個人連絡先、案件コード、文書の作成者情報を除去候補とし、公開窓口と開催日は残します。注文コードは配布条件をまだ確認できていないため保留です。これは例の条件で、すべての資料へ同じ判断を適用するものではありません。

元資料には資料名、版、ページ位置、抽出方法を付けます。元PDFをそのままAIへ入力してよいかも、組織の利用条件と環境で先に確認します。機密情報の候補を探すためなら、どのAIへも無条件に原文を送れるわけではありません。

作業用の複製と出力先を分け、元資料を保持します。Adobeは、適用して保存した墨消しは元へ戻せないと説明しています。処理前の確認と、出力ファイルの検証を別工程にします。Adobe:墨消しとサニタイズ(新しいタブで開く)

同じ形式の文字列でも、扱いは文脈で変わる

説明用のPDFには、次の架空文字列があると想定します。メールアドレスは実在する連絡先ではなく、example.invalidを使ったサンプルです。

表は横にスクロールできます

候補ID場所架空の値今回の取扱候補理由
D011ページの個人連絡先欄demo@example.invalid除去候補例の配布条件で対象
D021ページの公開窓口欄support@example.invalid残す利用者が参照する窓口として残す設定
D031ページの案件コード欄CASE-DEMO-7除去候補内部案件を示す例の識別子
D04文書情報の作成者Sample Author除去候補本文以外の作成者情報
D051ページの注文コード欄PUBLIC-42保留配布条件の確認前
D061ページの開催日欄2026-11-04残す案内に必要な情報

メール形式という理由だけでD01・D02をまとめて除去すると、残すべき窓口を失います。反対に「PUBLIC」という語があるD05を、公開可能と推定しません。形式や名前は候補を見つける手掛かりで、利用条件の証拠ではありません。

この表は除去候補3件、残す2件、保留1件の計6件です。PDFから3件を除去済みという記録ではありません。保留を「対象外」へ置き換えず、出力前に確認する項目として残します。

黒矩形の追加と、情報の除去を分ける

文字の上へ黒い図形を重ねるだけでは、元の文字データを除去する処理になりません。配布前には、対象文字列の検索・文字抽出・文書情報の確認を行い、残っている情報がないか調べます。これは確認手順の説明で、今回のPDFで抽出結果を測定した報告ではありません。

例えばD01を隠したい場合、画面で読めなくなったことだけを完了条件にせず、対象文字列が抽出できるかも確認します。D04の作成者情報は本文と別に確認します。実施した確認方法、対象ファイル、結果を記録し、未実施の検査を合格扱いにしません。

文字検索で見つからない場合も、それだけで除去完了とはしません。画像の中の文字、別の表記、同じ情報が繰り返された場所など、検索だけで確認できない範囲が残り得ます。対象PDFで使った確認方法と、その限界を記録します。

選択、適用、保存、出力検証を別に扱う

AdobeのAcrobat Pro公式手順は、墨消し対象のテキストや画像を選び、Applyで適用し、隠れた情報を除去する設定を選び、出力先を指定して保存する流れを説明しています。マークしただけの状態と、適用・保存後を混同しません。Adobe:墨消しの手順(新しいタブで開く)

同社は、墨消しと、メタデータや埋め込みコンテンツなどの隠れた情報を扱うサニタイズを分けています。D04のような文書情報は、本文の範囲だけを選ぶ工程と別に確認します。

今回、Acrobat Proの利用、Apply、サニタイズ、除去後PDFの保存は実施していません。有料機能の契約や提供条件、手元の画面に同じ操作があるかも未確認です。ここで扱うのは公式手順と、配布前に行う確認の考え方です。

除去したい情報と、残したい情報を両側から見る

出力検証では、除去対象が残っていないかに加え、D02の窓口やD06の開催日など、必要な情報が保たれたかも確認します。広く消せばよいという判断ではありません。

ページ位置の参照は、PDFビューアのページ順と印刷上のページ番号を区別します。同じ文字が複数箇所にあるなら、対象範囲と件数を記録します。画像や回転したページでは、AIが返す位置や文字を原ページで確かめ、見つからなかった候補を存在しないと決めつけません。

検証の記録には、元資料の版、候補ID、処理範囲、出力ファイルの版、対象情報の確認方法、残す情報の確認、保留を持たせます。検索、文字抽出、文書情報の確認、画面確認は、それぞれ実施した範囲を分けて残します。一つが通ったことを全情報の除去保証にしません。

候補表の件数と状態を検算する

次のPythonは候補表の計数だけを検査します。PDFの墨消しや、安全性の判定をするコードではありません。

from collections import Counter

plan = {
    "D01": "REMOVE_CANDIDATE", "D02": "KEEP",
    "D03": "REMOVE_CANDIDATE", "D04": "REMOVE_CANDIDATE",
    "D05": "REVIEW", "D06": "KEEP",
}
counts = Counter(plan.values())
assert set(plan) == {"D01", "D02", "D03", "D04", "D05", "D06"}
assert counts == {"REMOVE_CANDIDATE": 3, "KEEP": 2, "REVIEW": 1}
assert sum(counts.values()) == 6
assert plan["D01"] != plan["D02"]
assert plan["D05"] == "REVIEW"
print(counts)

候補3件を、処理済み3件と数えないことが要点です。実際の処理結果を記録するなら、候補の状態とは別に、選択、適用、保存、出力確認の結果を持たせます。候補表の計数が正しくても、除去が成功した証拠にはなりません。

AIには、除去の断定ではなく候補と不足を返させる

架空のPDFについて、許可された情報から除去候補表を作ってください。
例の条件:個人連絡先・案件コード・作成者情報は除去候補、公開窓口と開催日は残す。
注文コードの配布条件は未確認です。
候補ID、ページまたは文書情報の場所、原文、取扱候補、理由、未確認を返してください。
メール形式だけで全部除去せず、PUBLICという語だけで公開可能としないでください。
本文、画像、文書情報など、確認できた対象と確認できない対象を分けてください。
候補を見つけただけで墨消し済み、匿名化済み、配布可能とは書かないでください。
この依頼では原本変更、情報除去、共有・配布は行いません。

この依頼と候補表は手製例で、AIによる検出精度を測った結果ではありません。候補を担当者が確認し、適切な処理と出力検証を終えるまで、一覧の完成を配布の根拠にしません。文書から情報を除去する工程と、誰へどの目的で配布できるかの判断を分けて管理してください。

参考資料

公式資料の確認日:2026年10月20日。PDFと値、取扱条件、候補表は独自の架空例です。PDFの作成・文字抽出・墨消しの実測結果は掲載していません。実資料、AI検出、Acrobatの墨消し・サニタイズ、全情報の除去、法的な匿名化、配布可否、画面表示は未検証です。