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

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

最佳答案

首先,虽然通过 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 中起作用......

关于java - 如何在java中链接ghost脚本来减小PDF大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14383015/

相关文章:

c# - 如何在编译时驱动 C#、C++ 或 Java 编译器计算 1+2+3+...+1000?

java - 如何使用 Java 获取外部进程的内存和 CPU 使用情况?

android - 如何使用 phonegap+html+javascript 在 .apk 中显示 pdf 文件

java - 如何在 Java(和其他)中确定 "FI"的连字

pdf - 如何检查 TrueType 字体的 cmap 表和子表?

xml - GhostScript 在 ImageMagick 中的文件路径

java - 如何从文件中读取jar列表并将其用作Gradle中的类路径?

java - GWT - 更新面板中的表

PowerShell 和 GhostScript

pdf - 我在 gswin64c sDEVICE=pdfwrite 中做错了什么吗?