0

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

  1. 将字符串转换为 postscript
  2. 根据 postscript 文件生成 pdf 文件(完成)

我的问题是:我不知道如何实现第 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);

     }

先感谢您!

4

1 回答 1

0

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

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

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

我做了:

  • 将字符串转换为 pdf
  • ps转pdf
  • 使用 PDFMergerUtility 合并两者
于 2013-10-17T06:54:40.917 回答