Joh*_*n O 5 pdf bash shell uri qpdf
我正在下载一些 PDF 格式的报纸(供后代使用)。一个标题很麻烦,它在 pdf 本身中包含 URI 链接,如果您不小心单击这些链接,它会打开一个浏览器选项卡,指向一个长达 500 秒的页面。在台式电脑上这还不算太糟糕,但如果有人用平板电脑阅读它,那就很痛苦了。每期大约有 200 个此类链接。
对于不同的标题,就像使用 QPDF 一样简单,如下所示:
qpdf --qdf --object-streams=disable file temp-file
Run Code Online (Sandbox Code Playgroud)
这会将临时版本置于后记模式或其他模式下,我可以使用如下方式来取消链接:
s/obj\n<<\n( \/A <<\n \/S \/URI.+?)>>\nendobj/"obj\n<<\n" . " " x length($1). ">>\nendobj"/sge
Run Code Online (Sandbox Code Playgroud)
这仍然有效。然而,15 兆的原始 pdf 现在变成了 108 兆的“固定”pdf。我可以接受一些膨胀,但 720% 有点荒谬(我认为这更像是另一个标题的 10%)。每当我用 google 搜索如何执行此操作时,我都会得到 Acrobat Reader 的结果以及如何在 20 个菜单中单击来执行此操作...难道没有使用 Adobe 产品的人想要自动化执行此操作吗?每期典型期刊有 180 到 300 个链接,分布在 45-150 页(周日版)。
有什么工具可以做到这一点吗?qpdf 是否有任何巧妙的论据可以使这变得更加合理?
PS 是的,我知道用空格覆盖 URI 是很糟糕的,但我从来没有设法弄清楚如何完全删除对象,因为它们的引用也必须删除。
小智 3
您可以使用 cpdf 社区版来执行此操作:https://community.coherentpdf.com/
要删除 PDF 中的所有链接(或者用空链接替换它们):
cpdf -replace-dict-entry /URI cpdfmanual.pdf -replace-dict-entry-value '""' -o out.pdf
Run Code Online (Sandbox Code Playgroud)
这不会删除注释 - 它只是确保单击它们不会去任何地方。它将注释保留在适当的位置,但带有空链接。当然,您也可以替换为有效的 URL:
cpdf -replace-dict-entry /URI cpdfmanual.pdf -replace-dict-entry-value '"https://www.google.com/"' -o out.pdf
Run Code Online (Sandbox Code Playgroud)
(您也可以用来-replace-dict-entry-search
仅替换某些 URL - 请参阅手册。)
或者,如果您只想删除所有注释(链接和非链接):
cpdf -remove-annotations in.pdf -o out.pdf
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1171 次 |
最近记录: |