VintaSoft Imaging .NET SDK は、すべてのフォント タイプのテキスト エンコーディングを難読化する機能をサポートしています。
目的は何ですか?例えば、ドキュメントをオープンアクセスで公開する場合(またはサードパーティに渡す場合)、ドキュメントのテキストを任意の PDF ビューアでコピー/貼り付けによって簡単に抽出できないようにします。
解決策 1: PDF ドキュメントのセキュリティ設定のフラグを使用してテキストの抽出を禁止します。ただし、設定の遵守は、ユーザーがドキュメントを表示するために使用するアプリケーションによって異なります。PDF ビューアが PDF ドキュメントのセキュリティ設定を無視すると、テキストが簡単に抽出される可能性があります。
解決策 2: テキストのエンコーディングに関する情報を完全に削除し、フォントのグリフを混ぜ合わせ、ページ上の記号コードを混ぜ合わせます。これは、
VintaSoft PDF .NET Plug-in で提供されるテキスト エンコーディングを難読化する機能を使用して実行できます。難読化メカニズムにより、テキストのエンコーディングに関する情報が完全に削除され、フォント内およびページ上の記号のグリフが混ぜ合わされ、フォントと記号のグリフが複製されます。このように難読化されたテキストは、OCR を使用してのみ抽出できます。
VintaSoft PDF Editor デモ アプリケーションを使用して、単純な PDF ドキュメント (
document-without-text-obfuscation.pdf) の難読化を確認しましょう。
文書は2ページあります。4つの文は3つの異なるフォントを使用して書かれています。
1ページ目と2ページ目の最初の文は同じフォントを使用して書かれています。
テキスト抽出パネルとフォント表示ダイアログには、すべてのシンボルが正しいテキストエンコーディングを持っていることが示されています。
テキストエンコーディングの難読化ダイアログは、アプリケーションメニューから呼び出すことができます:テキスト -> テキストエンコーディングの難読化 -> 設定:
デフォルト設定で難読化を実行し、難読化されたテキストを含む出力ドキュメントを確認します:
document-with-default-text-obfuscation.pdf。
文書を確認すると、フォントが完全に変更され、グリフがランダムに再配置されています。抽出されたテキストは、テキスト抽出パネルで確認できます。
両ページの最初の文は同じフォントで書かれているため、最初の単語(緑色で強調表示)の記号は両ページとも同一です。
「簡単なプログラムを作成してテキストを抽出します。手動で文字マッピングテーブルを作成し、テキストをデコードします。」 そうです。これは可能です。特に文書にフォントが少ない場合は可能です。そのため、難読化設定を実装しました。これにより、デコードタスクの解決がほぼ不可能になります。
テキストエンコーディングの難読化ダイアログを再度開き、
- フォントの複製オプションをオンにします。これにより、各ページで独自のフォントセットが使用され、各フォントセットのグリフがランダムに再配置されます。
- フォントのグリフの複製オプションをオンにします。ページ上の同一シンボルはフォント内の異なるグリフを使用し、グリフのコードはランダムに選択されます。
この後、PDF ドキュメント内のテキストエンコードをもう一度難読化し、難読化されたテキストを含む出力 PDF ドキュメントを確認します:
document-with-strong-text-obfuscation.pdf。
文字「e」に異なるグリフが使用され、抽出されたテキストにはこの文字の異なるコードを持つシンボルが含まれていることがわかります。
1行目の単語「Text」は異なるフォントで書かれています。各フォントでは、独自のランダムな位置とグリフの複製が使用されています。これで、1ページ目と2ページ目からの単語抽出結果は全く異なるものになります。