0
     String[] cmd = {
"gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=     C:\\Users\\342008\\Desktop\\t\\Pa_10_12.pdf C:\\Users\\342008\\Desktop\\t\\P1_10_12.pdf"
};
try {
     Runtime.getRuntime().exec(cmd);
    } catch (IOException e) {}

我试图在命令行 argumenet 的帮助下使用 ghost 脚本来减小 PDF 文件的大小,我得到了上述输入字符串对象 cmd 的 IOexception,有人可以帮助运行这个命令来使用 ghostscript 吗?

4

1 回答 1

3

首先,虽然通过 pdfwrite 设备运行 PDF 文件可能会使文件变小,但这不是设备的目的,在某些情况下它会产生更大的文件。

如果您真的想这样做,请不要使用 -dPDFSETTINGS 开关。而是单独设置每个参数,花时间阅读文档并查看它们的作用,以便您做出明智的选择。

你没有说你使用的是什么操作系统,也没有说 Ghostscript 的版本,但我可以看到几个可能的问题:

1) Ghostscript 可执行文件并非在所有操作系统上都称为“gs”,可能是您使用了错误的名称。参数的语法让我相信这是一个 Windows 系统,在这种情况下,可执行文件称为 gswin32(对于窗口版本)或 gswin32c(对于命令行版本)。

2)您没有指定可执行文件的路径。只有在操作系统的搜索路径(通常是 %PATH% 环境变量)上可以找到可执行文件时,这才有效

您的命令行显然包含“-sOutputFile= C:\Users\342008\Desktop\t\Pa_10_12.pdf” 您不得参数中留下多余的空格。您在那里编写的内容将导致 GS 假定一个具有空名称的输出文件,然后将该文件名视为输入文件进行处理。

我建议您在 Java 中尝试此操作之前,请尝试从操作系统的命令行运行该命令。如果这不起作用,那么它也不会在 Java 中起作用......

于 2013-01-18T08:20:22.987 回答