Java - 使用Ghostscript将字符串转换为后脚本文件的代码

时间:2013-10-17 01:26:10

标签: java ghostscript

之前我从未使用过postscript而且......我需要替换一个工具:

  1. 将字符串转换为postscript
  2. 根据postscript文件(已完成)生成pdf文件
  3. 我的问题是:我不知道如何实现第1步。顺便说一句,我最好采用与我在步骤(2)中所做的相似的方式。

    我想知道我是否可以只更换参数,但是如何?你能帮帮我吗?

    第(2)项的代码如下:

    public byte[] convertPostScriptToPDF() throws IOException {
    
                //get Ghostscript instance
                Ghostscript gs = Ghostscript.getInstance();
    
                File file= new File (this.getClass().getResource( "/resources/employer_report_last_page2.ps").getFile());//(Config.EMP_REPORT.REPORT_LAST_PAGE_STORE_PATH);
                File pdfGenerated = File.createTempFile("output", "pdf");
                System.out.println("Path for temp file -> " + pdfGenerated.getAbsolutePath());
    
                //prepare Ghostscript interpreter parameters
                //refer to Ghostscript documentation for parameter usage
                String[] gsArgs = new String[10];
                gsArgs[0] = "-ps2pdf";
                gsArgs[1] = "-dNOPAUSE";
                gsArgs[2] = "-dBATCH";
                gsArgs[3] = "-dSAFER";
                gsArgs[4] = "-sDEVICE=pdfwrite";
               // gsArgs[5] = "-sOutputFile=output2.pdf";//output file name
                gsArgs[5] = "-sOutputFile=" + pdfGenerated.getAbsolutePath();
               // gsArgs[5] = "-sOutputFile=" + file.getAbsolutePath();
                gsArgs[6] = "-c";
                gsArgs[7] = ".setpdfwrite";
                gsArgs[8] = "-f";
               // gsArgs[9] = "input.ps";//input file name
                gsArgs[9] = file.getAbsolutePath();//input file name
    
                //execute and exit interpreter
                try {
    
                    gs.initialize(gsArgs);            
                    gs.exit();
    
                } catch (GhostscriptException e) {
                    System.out.println("ERROR: " + e.getMessage());
                }
    
                FileInputStream fis = new FileInputStream(pdfGenerated);
                return IOUtils.toByteArray(fis);
    
         }
    

    提前谢谢!

1 个答案:

答案 0 :(得分:0)

我没有解决方案,所以我意识到我可以尝试一种解决方法......

我更改了应用程序逻辑。最后它会将所有内容转换为pdf,因此不是:

  • 将字符串转换为ps
  • 添加ps其他内容ps
  • 将ps转换为字符串

我做了:

  • onvertd string to pdf
  • 将ps转换为pdf
  • 使用PDFMergerUtility
  • 合并