ps2pdf - 无法打开初始设备

ps2pdf - Unable to open initial device

我使用带有 lualatex 编译器的 LaTeX 构建了一个相当大的 PDF(我需要那个,因为特定的字体)现在想用 ps2pdf 缩小 PDF,然后 this 指令(得票第二多的答案,因为 gs 在我的电脑上不被识别为命令行工具)。我的命令如下所示:

ps2pdf -dPDFSETTINGS=/ebook -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -q -sOutputFile=output.pdf input.pdf

我收到此错误消息:

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

我确定该文件存在,我尝试使用 as *.ps 文件作为输入,给出了完整路径,一次使用和不使用双引号(Windows 系统),但是没有任何效果。奇怪的是,只有 运行 ps2pdf ouput.pdf input.ps 有效,但会生成更大的 PDF。我错过了什么?

无法打开的文件是output文件,所以如果它存在,那将是一个潜在的问题。如果 'something else' 已打开输出文件,则无法写入。

您似乎 运行正在使用非标准版本的 Ghostscript,从启动横幅判断,如果我是您,我会安装并使用标准版本的 Ghostscript,即使您必须构建自己做。

奇怪的是 'ps2pdf' 只是 运行 Ghostscript 的一个脚本可以工作,而一个简单的 'gs' 不会。我个人不会使用该脚本。尝试直接找到 Ghostscript 可执行文件和 运行。

我也会放弃 -q(安静)开关,至少在尝试解决问题时,抑制消息可能会隐藏一些有用的东西。

哦,我知道了,你居然在用Windows。好吧,Windows 上的可执行文件不叫 'gs',它叫 gswin,后跟 32 或 64 字长,如果是命令行(而不是窗口)版本则叫 c。所以您需要 gswin32、gswin32c、gswin64 或 gswin64c 之一。请注意,Ghostscript 安装程序不会将安装目录添加到 $PATH 环境变量中,因此如果您只是打开 Windows 命令 shell 并键入 'gswin32c' 将找不到它。您需要将 isntall 目录添加到 $PATH 或提供可执行文件的完整路径。

我个人会使用 vanilla Windows 二进制文件,而不是 MingW 或您正在使用的任何 Linux shell 提供的修改版本。也可以想象,如果目录不可用或只读到 shell.

,这会导致您写入输出文件时出现问题