如何在java中链接ghost脚本以减小PDF大小?

时间:2013-01-17 15:58:10

标签: java pdf ghostscript

     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吗?

1 个答案:

答案 0 :(得分:2)

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

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

您还没有说过您正在使用的操作系统,也没有说过哪个版本的Ghostscript,但我可以看到几个可能的问题:

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

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

您的命令行显然包含“-sOutputFile = C:\ Users \ 342008 \ Desktop \ t \ Pa_10_12.pdf”您必须 NOT 在参数中留下无关的空格。你在那里写的将导致GS假设一个空名称的输出文件,然后将文件名视为输入文件进行处理。

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