【问题标题】:Redirect printer's .PS file with RedMon to my Java code使用 RedMon 将打印机的 .PS 文件重定向到我的 Java 代码
【发布时间】:2016-10-27 18:26:00
【问题描述】:

我正在尝试使用 RedMon 将打印机的 .PS 文件重定向到我的 Java 代码。

RedMon 端口配置:

重定向到程序:C:\Program Files\Java\jre1.8.0_111\bin\java.exe

参数:-jar c:\dist\JavaApplication5.jar --stdin

和 Java 代码:

public class JavaAplication5 {

public static void main(String[] args) throws FileNotFoundException {
    BasicConfigurator.configure();                          //log4j
    System.setProperty("jna.library.path", "C:\\dist\\");   //fix path to gsdll

     FileInputStream file = new FileInputStream(args[0]);
     Ghostscript gs = Ghostscript.getInstance(); 
     String[] gsArgs = new String[10];
    gsArgs[0] = "-ps2pdf";
    gsArgs[1] = "-dNOPAUSE";
    gsArgs[2] = "-dBATCH";
    gsArgs[3] = "-dSAFER";
    gsArgs[4] = "-sDEVICE=pdfwrite";
    gsArgs[5] = "-sOutputFile=output.pdf";
    gsArgs[6] = "-c";
    gsArgs[7] = ".setpdfwrite";
    gsArgs[8] = "-f";
    gsArgs[9] =  String.format(" %s ", file) ;        

    try { 
        gs.initialize(gsArgs);
        gs.exit(); 
    } catch (GhostscriptException e) {
        JOptionPane.showMessageDialog(null, "ERROR: " + e.getMessage());
    }
}
}

我怎样才能让它工作?

【问题讨论】:

    标签: java redirect printing ghostscript redmon


    【解决方案1】:

    所以如果我没看错的话,你已经设置了 RedMon 将发送到端口的数据发送到你的 Java 应用程序。

    然后您系统调用 Ghostscript(使用 ps2pdf 脚本)并告诉它从标准输入读取。

    但 Ghostscript 标准输入不是您的 Java 程序的标准输入,除非我误解了 Java 的某些方面。

    我希望当您派生一个 Ghostscript 实例时,该应用程序会获得自己的标准输入,这与与您的 Java 程序关联的标准输入不同。

    最好的办法是将 Java 程序的输入写入文件,完成后在文件上执行 Ghostscript。

    【讨论】:

    • 但是我对 redmon 有什么期望;一个文件,一个路径,一个字节数组......我不知道如何处理这个 -redmon 的输出 - 我的 Java 的输入 - 将它放在一个文件中?
    • 据我记得,RedMon 将其输出发送到它被指示使用的应用程序的标准输入。因此,您的 Java 应用程序将在标准输入上获得字节流。我不知道你在 Java 中是如何处理的。
    猜你喜欢
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 2012-01-03
    • 2014-07-22
    • 2011-01-31
    相关资源
    最近更新 更多