如何查明 PDF 文件中是否存在边界框内不可见的数据?

如何查明 PDF 文件中是否存在边界框内不可见的数据?

我将大型网页的一小部分嵌入到使用 pdflatex 编译的文档中(使用\includegraphics)。光栅图像/屏幕截图在放大时会产生伪影,因此我使用浏览器的打印对话框将页面保存为 PDF,并裁剪我需要的部分。

$ pdfcrop --margins "-50 -65 -40 -400" full-page.pdf area.pdf

此工具可更改边界框,并生成所需的视觉的外观。但文件保留了原始文件的所有内容。

$ ls -lh *.pdf
-rw-rw-r-- 1 user group 7.1M Apr 27 14:48 area.pdf
-rw------- 1 user group 7.1M Apr 27 14:02 full-page.pdf

边界框之外包含个人信息,我希望确保这些信息不会出现在裁剪后的 PDF 中(用户名、时间戳、ID 等)。给定原始文档中的一串 ascii 纯文本,例如我的用户名,我将如何查找它是否存在于 PDF 中。我可以预期页面中的 ascii 文本是按字面意思包含的,还是会以某种矢量形式进行编码?

我提到该文件来自浏览器,因为直观地讲,浏览器可能会以可预测的方式对其打印的 PDF 进行编码,如果它直接映射到 DOM,也许很容易剪切区域。

pdf2ps 实验

我已经将 pdf 转换为 ps 并转回(pdf2ps,然后是 ps2pdf),这确实大大缩小了文件大小,但如果不知道如何解释文件的内容,或者不知道这些转换涉及什么,我不能确定我想要删除的内容是否最终消失了,隐藏了,或者只是在空间上重新优化/压缩了。

$ pdf2ps area.pdf && ps2pdf area.ps
$ ls -lh *.pdf
-rw-rw-r-- 1 user group 259K Apr 27 14:59 area.pdf
-rw------- 1 user group 7.1M Apr 27 14:02 full-page.pdf

初始页面主要是字体和线条,除了几个图标。不过字体是 CJK。最终所有内容在任何比例下看起来都很好,因此看起来矢量路径确实通过转换得到了保留。

编辑:根据类似问题关于使用 pdfcrop 删除内容(我在写这篇文章之前搜索时错过了它)。我更感兴趣的是确保一些文本数据不是此时在 pdf 中。我之所以询问这个社区,是因为它的用户熟悉此类嵌入文档,以及所涉及的底层格式。

相关内容