答案1
可能发生了什么
您导入的 PDF 很可能是使用完全的内容——但部分内容只是通过应用不同的“剪裁框' (小于“媒体盒”您可以将原始 PDF 的原始版本添加到导入中。只需操作 PDF 代码的一小部分即可实现此目的。
通常如何发生
这通常发生在您使用 macOS 时'预览'应用程序“裁剪”页面的部分内容。用户经常会被愚弄:他们认为他们已经删除了现在不可见的所有内容,并且在向客户发送此类页面“摘录”时保护了他们更广泛的公司机密。然而,只需在文本编辑器中更改两个数字,即可让所有页面内容再次可见!
如何更好地理解发生的事情
为了理解这种“裁剪”的工作原理,想象一下一张白纸覆盖了一页内容。现在在那张纸上剪出一个小窗口,让你只能看到“裁剪”的区域。其余的内容并没有消失,仍然在那里;只是目前不可见,只需移除带有小窗口的白纸即可再次显示。由于 PDF 查看器不会真正显示可见部分周围的白色区域,因此你的大脑很容易被误导,以为剩余的内容已经永远消失了。真的作物您必须从原始纸张上剪掉所有不需要的内容并将其烧毁......
如何解决问题
为了使内容超出此类裁剪区域真的离开(并永久从页面中删除/Contents
流,您必须再次重新处理初始裁剪的页面。像这样通过 Ghostscript 运行它将实现此结果:
gs -sDEVICE=pdfwrite -o really-cropped.pdf seemingly-cropped.pdf
如何检查解决方案是否有效
为了验证,你应该运行这两个pdfinfo
命令:
pdfinfo -box seemingly-cropped.pdf
pdfinfo -box really-cropped.pdf
只有具有相同值的 PDF 文件媒体盒以及剪裁框可以保证不是包含 PDF 查看器显示区域之外的额外(隐藏)内容。这些内容可以安全地导入到文档中。所有 PDF 文件,其大小都较小剪裁框-比媒体盒-es可能有额外的隐形内容随身携带......
答案2
我最近也遇到了类似的情况,幸运的是,我成功解决了这个问题。在我的例子中,我需要从 PDF 中删除页眉和页脚才能自动提取表格 - 搜索‘tabula-py’Python 包。我们的想法是将所有 PDF 页面合并为一个页面 - 搜索‘pdfjam --nup’命令——修复格式错误的表格。
为了裁剪 PDF 页边距,我使用了“pdfcrop' 来自 'texlive-extra-utils' 包的命令,适用于 Linux。裁剪 PDF 页边距后,我使用了 'pdftocairo' 命令删除不可见/隐藏的文本内容。要在 Debian/Ubuntu 发行版上安装“pdftocairo”工具,只需运行以下命令:
sudo apt install poppler-utils
该工具通过命令行使用,您可以像这样运行它:
pdftocairo input.pdf output.pdf -pdf