从Java执行时出现Ghostscript错误

时间:2017-04-28 00:52:36

标签: java ghostscript

我正在尝试使用Runtime.getRuntime()。exec(command)从我的Java程序执行ghostscript命令。

我用来生成PDF / A文件的命令是:

command = "/usr/local/bin/gs  -q  -dPDFA=2  -dBATCH  -dNOPAUSE  -sColorConversionStrategy=RGB  -sDEVICE=pdfwrite  -dPSFitPage  -dFastWebView=true  -dDOPDFMARKS  -sOutputFile=" + mergedPDFFile + " " + pdfaDefFile + " " + inputPDFFile + " " + pdfMarksFile;

当输入的PDF文件大小小于1 MB时,它可以正常工作。但是,当输入的PDF文件大小大于1 MB时,不会生成输出。

我用Java编写的代码是:

 private void executeCommand(String command) {
        Process p = null;
        try {
            p = Runtime.getRuntime().exec(new String[]{"bash", "-c", command});
             String s1 = null;
            BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
            while ((s1= reader.readLine()) != null) {
                slf4jLogger.info("+++++++++++++++++++++++++++++" + s1);
            }
            String s = null;
            BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
            while ((s = stdError.readLine()) != null) {
                slf4jLogger.info("***********************" + s);
            }
            p.waitFor();
            int returnValue = p.exitValue();
            slf4jLogger.info("RETURN VALUE : " + returnValue);

        } catch (Throwable e) {
            slf4jLogger.error("ERROR: ********************" + e.toString(), e);
        } finally {
            slf4jLogger.info("END MY PROCESS:");
            if (p != null) {
                p.destroy();
            }
        }

非常感谢任何帮助。

0 个答案:

没有答案