尝试使用 ghostscript 压缩 pdf 失败 - 设备“pdfwrite”需要输出文件

Posted

技术标签:

【中文标题】尝试使用 ghostscript 压缩 pdf 失败 - 设备“pdfwrite”需要输出文件【英文标题】:Failed attempt to compress pdf with ghostscript - Device 'pdfwrite' requires output file 【发布时间】:2015-09-02 14:06:11 【问题描述】:

我尝试使用以下命令压缩 pdf 文件:

gswin64c -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -sOutputFile=test-compressed.pdf test.pdf

我在test.pdf的目录下也可以打开,但是执行命令时出现如下错误,虽然输出文件应该用-sOutputFile=test-compressed.pdf来指定:

GPL Ghostscript 9.16: Device 'pdfwrite' requires an output file but no file was specified.
**** Unable to open the initial device, quitting.

【问题讨论】:

【参考方案1】:

我自己解决了:它不适用于 PowerShell,但它适用于 cmd.exe。

【讨论】:

【参考方案2】:

对我来说,PowerShell 中的以下工作:

gswin64c -sDEVICE=pdfwrite -o test_compressed.pdf -dCompatibilityLevel='1.4' -dNOPAUSE -dQUIET -dBATCH  test.pdf

【讨论】:

【参考方案3】:

对我来说,以下命令有效:

& "gswin64c" "-sDEVICE=pdfwrite" "-dCompatibilityLevel=1.4" "-dNOPAUSE"
"-dQUIET" "-dBATCH" "-sOutputFile=test-compressed.pdf" "test.pdf"

【讨论】:

【参考方案4】:

首先,Ghostscript 的 pdfwrite 设备不会“压缩”PDF 文件。它会生成新的 PDF 文件,这些文件在视觉上应该与输入相同(无论输入是什么格式)。

它告诉你的是你没有指定一个输出文件。所以要么你上面给出的命令行不是你实际输入的(这个错误通常是命令行输入错误的结果),要么有其他问题(例如目录不存在或者你没有权限在那里创建一个文件)

【讨论】:

以上是关于尝试使用 ghostscript 压缩 pdf 失败 - 设备“pdfwrite”需要输出文件的主要内容,如果未能解决你的问题,请参考以下文章

在 .bat 文件中使用 ghostscript 压缩 PDF - 缺少文本

合并 PDF 的 Ghostscript 压缩结果

使用 ghostscript 实现与 imagemagick 的转换相同的 PDF 压缩

Ghostscript PDF批量压缩

Windows 上的 Ghostscript 导致 -dPDFSETTINGS 的选项无效

使用 Ghostscript 将 PDF 转换为 TIFF 时保留页面尺寸