Перенаправить файл .PS принтера с помощью RedMon на мой код Java

Я пытаюсь перенаправить файл .PS принтера с помощью RedMon на свой код 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());
    }
}
}

Как я могу заставить это работать?


person remux    schedule 27.10.2016    source источник


Ответы (1)


Итак, если я правильно понял, вы настроили RedMon для отправки данных, отправляемых на порт, в ваше Java-приложение.

Затем вы вызываете систему Ghostscript (используя сценарий ps2pdf) и говорите ему читать со стандартного ввода.

Но стандартный ввод Ghostscript не является стандартным вводом вашей Java-программы, если только я не понимаю какой-то аспект Java.

Я ожидаю, что когда вы разветвляете экземпляр Ghostscript, это приложение получает свой собственный стандартный ввод, который отличается от стандартного ввода, связанного с вашей Java-программой.

Лучше всего было бы записать входные данные для вашей Java-программы в файл и, когда он будет завершен, выполнить Ghostscript в файле.

person KenS    schedule 27.10.2016
comment
Но чего мне ожидать от редмона; Файл, Путь, Массив байтов... Я не знаю, как с этим справиться - вывод из redmon - ввод для моей Java - чтобы он был в файле? - person remux; 27.10.2016
comment
Насколько я помню, RedMon отправляет свои выходные данные на стандартный ввод приложения, которое было направлено для использования. Таким образом, ваше Java-приложение получит поток байтов на стандартный ввод. Я понятия не имею, как вы справляетесь с этим на Java. - person KenS; 28.10.2016