【问题标题】:Ghostscript to compress a batch of PDFsGhostscript 压缩一批 PDF
【发布时间】:2019-04-11 06:49:04
【问题描述】:

我没有编程经验。

我的 PDF 不会在 iPad 上以 PDFExpert 或 GoodNotes 显示图像,因为图像是 JPEG2000 格式,我可以在 Internet 上找到。

这些是大型 PDF,最多 1500-2000 页带图像。其中之一是一个 80MB 左右的文件。我尝试使用 Foxit 打印它以将图像从 JPEG2000 转换为 JPG,但文件大小跃升至 800MB……而且它花费的时间太长。

我偶然发现了 Ghostscript,但我不知道如何使用命令行界面。

我的时间很短。几乎需要一个小脚本的分步指南,它可以一次性转换我所有的 PDF。

非常抱歉我的经验不足和无助。有人可以用勺子喂我这个步骤吗?

编辑:我想将 JPEG2000 切换到任何其他格式,以减少文件大小的增加并导致质量损失最小(在合理范围内)。我不知道如何使用 Ghostscript。我基本上想将图像的压缩更改为可以在 iPad 上正确显示的内容,同时保持其余文本的质量以及嵌入的书签。

我再说一遍,我没有命令行经验...我什至不知道如何将 GS 指向我的 PDF 所在的文件夹...

【问题讨论】:

    标签: pdf pdf-generation ghostscript jpeg2000


    【解决方案1】:

    你还没有真正说出你想要什么。 “转换” PDF 究竟如何?

    请注意,从 JPX (JPEG2000) 切换到 JPEG 会导致质量损失,因为图像数据将被 JPEG 编码器量化(使用与 JPX 不同的量化方案)。您可以改用无损压缩方案,但您将无法获得相同类型的压缩。无论如何你都不会得到和JPX一样的压缩比,结果会更大。

    一个简单的 Ghostscript 命令是:

    gs -sDEVICE=pdfwrite -o out.pdf in.pdf

    因为 JPEG2000 编码是(或至少是)专利保护,pdfwrite 设备不会将图像写入 JPX

    获得更好的结果将需要更复杂的命令行,但您还必须更明确地了解您想要实现的具体目标,以及简单命令行的感知问题是什么。

    [编辑]

    嗯,在执行命令行方面提供帮助对于 Stack Overflow 来说有点离题,这应该是软件开发人员的网站 :-)

    不知道你用的是什么操作系统很难给你详细的说明,我也不知道 iPad 用的是什么,我一般不使用 Apple 设备,我唯一的经验是使用 Mac。

    大概你知道你安装 Ghostscript 的位置(目录)。要么在那里打开命令外壳并输入命令./gs,要么通过提供完整路径来执行命令,例如:

    /usr/bin/gs
    

    我认为命令行上的参数是不言自明的,但是....

    -sDEVICE=pdfwrite 开关告诉 Ghostscript 使用 pdfwrite 设备,正如您可能从名称中猜到的那样,该设备将 PDF 文件作为其输出写入。

    -o 开关是输出文件的名称(如果需要,还有完整路径)。

    最后一个参数是输入文件的名称(如果不在当前目录中,则是完整路径)。

    所以一个命令可能看起来像:

    /usr/bin/gs -sDEVICE=pdfwrite -o /home/me/output.pdf /home/me/input.pdf
    

    或者如果 Ghostscript 和输入文件在同一个目录下:

    ./gs -sDEVICE=pdfwrite -o out.pdf input.pdf
    

    【讨论】:

    • 对不起,我想我不清楚。我想将 JPEG2000 切换到任何其他格式,以减少文件大小的增加并导致质量损失最小(在合理范围内)。我不知道如何使用 Ghostscript。我基本上想将图像的压缩更改为可以在 iPad 上正确显示的内容,同时保持其余文本的质量以及嵌入的书签。
    • 我建议您在我的答案中尝试命令行,看看它对您有用。如果它不可接受,那么您将有具体的事情我们可以讨论,我可以(可能)提供其他建议,具体取决于问题的性质。
    • 我真的很抱歉,但我不知道如何执行它。我需要将 GS 可执行文件移动到包含 PDF 的文件夹吗?如何确保我的原始文件没有被覆盖,并且新文件的名称中添加了数字或字母?
    • 感谢您的耐心等待!我的问题很深奥,以至于我无法使用通常的论坛来解决它。我在 Windows 上。我在 Onedrive 上有一个 PDF 文件夹。我想重命名它们,因为它们是由 ghostscript 处理的。如何修改这些命令以获取文件“ABC.pdf”并将输出重命名为“ABC new.pdf”?
    • 另外,什么是“pdfwrite 设备”?我计划重新审视所有这些并学习它,只是现在没有时间。另外,它可以帮助遇到此特定问题的其他任何人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多