如何从命令行删除 pdf 中隐藏的裁剪元素?

问题描述 投票:0回答:3

如何从命令行删除 pdf 中隐藏的裁剪元素?我已经尝试了许多解决方案来根据坐标裁剪 pdf 页面上的元素,但生成的 pdf 具有相同的大小,并且额外的元素只是被屏蔽而不是被删除。我找到了这个解决方案,但我正在寻找命令行工具。

linux pdf crop
3个回答
1
投票

我知道唯一可以做到这一点的方法同时保留在命令行(Windows、Linux、MacOSX)上工作的 CropBox 内的所有 PDF 对象是callassoftware的商业/付费软件。

如果您可以接受,请在评论中指出,我将用更多详细信息更新答案。

否则,另一种方法是将(裁剪的)PDF 页面转换为图像(例如,借助 Ghostscript 转换为 TIFF),然后将图像重新转换回 PDF。以前的所有 PDF 对象都将消失,现在唯一的(图形)“对象”将是嵌入在 PDF 页面上的图像。

如果您可以接受,请在评论中指出,我将用更多详细信息更新答案。


0
投票
我找到了一些可能满足也可能不满足您需求的解决方案:

  • 在命令行中使用 pdfimages 提取 pdf 的

    images :参见 https://askubuntu.com/a/150106

    pdfimages -all in.pdf .

  • 使用 Inkscape GUI :使用 inkscape 打开 pdf,选择所需部分,右键单击所选内容,分组,选择所有内容(CTRL+A),取消选择分组部分(Shift + 左键单击),另存为 pdf。请参阅

    https://inkscape.org/

  • 通过命令行使用 Inkscape(所有边距相同),可以通过添加负边距来裁剪和擦除 pdf 的边框(手册位于

    https://inkscape.org/doc/inkscape-man)。 html)。 20 毫米示例:

    inkscape in.pdf --export-margin=-20 -o out.pdf

  • 通过命令行使用 Inkscape(自定义边距):使用通用方法裁剪 pdf(请参阅

    如何轻松裁剪 PDF 页面?,这些方法只是隐藏内容),然后使用 Inkscape 重新导出裁剪后的 pdf(这将删除页面之外的内容):

    inkscape 输入.pdf -o 输出.pdf

请注意,

使用 Inkscape,文档可能会有所不同,特别是如果您没有与原始文档相同的字体。


0
投票
“打印为 pdf”通常会对文档进行完整的重排。这是唯一对我有用的解决方案,但这只是部分命令行解决方案。在 Linux shell 中运行:

okular --print-and-exit my_file.pdf
这将直接在打印对话框中使用 Okular 打开文件。您仍然需要使用鼠标选择“在文件中打印(PDF)”,可以选择更改建议的文件名,然后单击“确定”。 Okular 将自动退出。
也许您可以自动化上述操作,或者找到另一个在命令行上工作的“pdf 到 pdf 打印机”。

© www.soinside.com 2019 - 2024. All rights reserved.