我正在尝试用RedMon将打印机的RedMon文件重定向到我的Java代码。
RedMon端口配置:
重定向到程序: Files\Java\jre1.8.0_111\bin\java.exe C:\
参数:-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());
}
}
}我怎么才能让这个起作用?
发布于 2016-10-27 19:32:47
因此,如果我正确地阅读了这篇文章,您已经设置了RedMon,将发送到端口的数据发送到您的Java应用程序。
然后系统调用Ghostscript (使用ps2pdf脚本)并告诉它从stdin读取。
但是Ghostscript stdin不是Java程序的stdin,除非我误解了Java的某些方面。
我希望当您分叉Ghostscript实例时,应用程序会得到自己的stdin,这与与Java程序关联的stdin不一样。
最好的方法是将输入写入Java程序的文件中,并在完成后在文件上执行Ghostscript。
https://stackoverflow.com/questions/40291719
复制相似问题