VintaSoft Imaging .NET SDK 支持对所有字体类型进行文本编码混淆。
目的是什么?例如,您发布一份开放获取的文档(或将其提供给第三方),并且您不希望文档中的文本可以通过在任何 PDF 查看器中复制/粘贴轻松提取。
方案一:使用 PDF 文档安全设置的标志禁止文本提取,但设置是否生效取决于用户用于查看文档的应用程序。如果 PDF 查看器忽略 PDF 文档安全设置,则文本很容易被提取。
解决方案 2:完全移除文本编码信息,混淆字体字形,混淆页面上的符号代码。这可以通过
VintaSoft Barcode .NET SDK 中提供的文本编码混淆功能来实现。
VintaSoft PDF .NET Plug-in。混淆机制会完全移除文本编码信息,混合字体和页面上的符号字形,并复制字体和符号字形。以这种方式混淆的文本只能使用 OCR 提取。
让我们使用 VintaSoft PDF Editor Demo 应用程序来查看对简单 PDF 文档(
document-without-text-obfuscation.pdf)的混淆效果。
该文档包含两页。四个句子使用了三种不同的字体。
第一页和第二页的第一个句子使用了相同的字体。
文本提取面板和字体查看对话框显示所有符号的文本编码均正确。
可以使用应用程序菜单调用文本编码混淆对话框:文本 -> 混淆文本编码 -> 设置。
让我们使用默认设置执行混淆操作,并查看混淆后的输出文档:
document-with-default-text-obfuscation.pdf。
文档查看显示字体已完全更改,字形被随机重新定位。提取的文本可以在文本提取面板中查看。
由于两页的第一句话都使用了相同的字体,因此两页上第一个单词(绿色高亮显示)的符号相同:
您可能会说:"我会编写一个简单的程序来提取文本。我会手动创建一个字符映射表并解码文本。"是的,这完全可行,尤其是在文档中只使用了少量字体的情况下。因此,我们实现了混淆设置,使得解码几乎不可能。
让我们再次打开文本编码混淆对话框,然后:
- 启用字体复制选项--每页将使用自己的一组字体,并且每组字体的字形将以随机方式重新定位。
- 启用字体字形复制选项 - 页面上相同的符号将使用字体中的不同字形,字形代码将随机选择。
之后,让我们再次对 PDF 文档中的文本编码进行混淆,并查看混淆后的输出 PDF 文档:
document-with-strong-text-obfuscation.pdf。
现在我们可以看到,字母"e"使用了不同的字形,提取的文本将包含具有不同代码的该字母符号。
第一行中的单词"Text"现在使用不同的字体书写。每种字体都使用其自身的随机位置和字形复制方式。现在,从第一页和第二页提取单词的结果截然不同: