首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ghost4j不产生输出文件

Ghost4j不产生输出文件
EN

Stack Overflow用户
提问于 2017-01-18 19:50:40
回答 2查看 650关注 0票数 1

我正在尝试制作一个pdf输出。我已经完成了pdf文件与pdfbox,但它现在有约15 MB。这是为了达到计划的目的。所以我想缩小文件的大小。我首先尝试了linux终端和鬼脚本:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=4 -dNOPAUSE -dBATCH -r150 -sOutputFile=output.pdf input.pdf

这个很好用。但是,由于它是一个java程序,应该没有shell,所以我测试了ghost4j:

代码语言:javascript
复制
Ghostscript gs = Ghostscript.getInstance();
String[] gsArgs = new String[7];
gsArgs[0] = "-sDEVICE=pdfwrite ";
gsArgs[1] = "-dCompatibilityLevel=1.4 ";
gsArgs[2] = "-dPDFSETTINGS=/screen ";
gsArgs[3] = "-dNOPAUSE ";
gsArgs[4] = "-dBATCH ";
gsArgs[5] = "-sOutputFile=qw3.pdf ";
gsArgs[6] = "input.pdf";
gs.initialize(gsArgs);
gs.exit();

但是我没有输出文件。有些争论是非法的吗?

希望有人能帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-27 16:04:52

感谢@KenS,我得到了答案:

代码语言:javascript
复制
Ghostscript gs = Ghostscript.getInstance();
String[] gsArgs = new String[8];
gsArgs[1] = "-sDEVICE=pdfwrite";
gsArgs[2] = "-dCompatibilityLevel=1.4";
gsArgs[3] = "-dNOPAUSE";
gsArgs[4] = "-dBATCH";
gsArgs[5] = "-r150";
gsArgs[6] = "-sOutputFile=qw3.pdf";
gsArgs[7] = "input.pdf";
gs.initialize(gsArgs);
gs.exit();

这似乎很重要,gsArgs必须是空的。

感谢@KenS。

票数 3
EN

Stack Overflow用户

发布于 2017-01-19 08:33:08

至少有几个论点是不正确的。CompatibilityLevel应该在1.0到1.7之间,4太大了。使用pdfwrite设置分辨率不是一个明智的主意,它通常不会产生任何效果。有一些例外,例如,如果您将一个透明的PDF文件带到PDF的低版本,以至于它不支持透明性。

你至少应该得到一个0字节的PDF文件,如果你没有,那么有些事情是严重的错误。

如果您确实得到了一个0字节的文件,那么操作至少开始了.您应该捕获后通道输出,并读取它是否有错误的迹象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41728236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档