1

我在 Linux 服务器中为我的应用程序运行 PostScript 到 PDF 转换服务。我安装了 ghostscript 8.70 版。我正在使用 gsdll64.dll 和 ghostscript 9.26 在 Windows 中测试代码,它运行良好。我在我的 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);
    }
4

2 回答 2

0

因此,您不是在使用 Ghostscript,而是在使用 Ghost4j。您的第一步应该是从命令行初始化 Ghostscript 本身;只需执行“gs”,看看会发生什么。

错误 -100 只是意味着“发生了致命的事情”,我对 Ghost4j 不熟悉,但大概有一些方法可以查看 stdout 和 stderr 上发生了什么,在这些通道上发回了哪些消息?

于 2019-04-03T06:57:31.340 回答
0

我能够通过升级 Ghostscript 的版本来解决它。当我安装 9 以上的 Ghostscript 版本时,它起作用了。

于 2019-04-03T19:41:00.330 回答