PS转PDF。 GhostScript 异常 - 无法初始化 Ghostscript 解释器。错误代码是-100
Posted
技术标签:
【中文标题】PS转PDF。 GhostScript 异常 - 无法初始化 Ghostscript 解释器。错误代码是-100【英文标题】:PS to PDF conversion. GhostScript Exception - Cannot initialize Ghostscript interpreter. Error code is -100 【发布时间】:2019-04-02 20:20:38 【问题描述】:我正在 Linux 服务器中为我的应用程序运行 PostScript 到 PDF 的转换服务。我安装了 ghostscript 8.70 版。我在 Windows 中使用 gsdll64.dll、ghostscript 9.26 测试代码,它运行良好。 我在我的 pom 文件中添加了 jna 4.1.0 和 ghost4j 1.0.1 依赖项。
当我运行程序时,出现以下错误:
Caused by: org.ghost4j.GhostscriptException: Cannot initialize Ghostscript interpreter. Error code is -100
at org.ghost4j.Ghostscript.initialize(Ghostscript.java:365)
at org.ghost4j.converter.PDFConverter.run(PDFConverter.java:231)
我的代码如下所示:
InputStream iis = null;
ByteArrayOutputStream bos = null;
try
//load the bytes data into the inputstream
iis = new ByteArrayInputStream(psBytes);
//create the byte array output stream
bos = new ByteArrayOutputStream();
//load PostScript bytes through input stream
PSDocument document = new PSDocument();
document.load(iis);
//create converter
PDFConverter converter = new PDFConverter();
//set options
converter.setPDFSettings(PDFConverter.OPTION_PDFSETTINGS_PREPRESS);
converter.convert(document, bos);
return bos.toByteArray();
catch (org.ghost4j.document.DocumentException de)
String[] errArg = de.getMessage();
throw new ApplicationException(ErrorCode.XXXXX, errArg);
【问题讨论】:
【参考方案1】:所以,您使用的不是 Ghostscript,而是 Ghost4j。您的第一步应该是从命令行初始化 Ghostscript 本身;只需执行“gs”,看看会发生什么。
错误 -100 只是意味着“发生了致命的事情”,我对 Ghost4j 不熟悉,但大概有一些方法可以查看 stdout 和 stderr 上发生了什么,在这些通道上发回了哪些消息?
【讨论】:
【参考方案2】:我可以通过升级 Ghostscript 的版本来解决它。当我安装 9 以上版本的 Ghostscript 时,它可以工作。
【讨论】:
以上是关于PS转PDF。 GhostScript 异常 - 无法初始化 Ghostscript 解释器。错误代码是-100的主要内容,如果未能解决你的问题,请参考以下文章
Ghostscript:ps2pdf 不适用于 Win 7 32 位
Ghostscript:为啥我必须为 PDF/A 转换提供 pdfa_def.ps?
GhostScript PS 到 PDF 的转换 - 裁剪了一些部分
通过 Ghostscript 将 PS 文件转换为 PDF/A,色彩空间问题