Как установить DocFlavor для службы печати в Java для Windows - PullRequest
2 голосов
/ 17 сентября 2009

Я написал код для программной работы принтера в Java. Мне нужно установить значение docflavor для печати файла .txt. Когда я устанавливаю его для INPUT_STREAM.TEXT_PLAIN_UTF_8 и запускаю мою программу в Linux, он печатает текстовый файл .но когда я запускаю тот же код для Windows. Он не может распечатать текстовый файл. Он печатает только файл формата jpeg. Я использую для этого принтер HP Deskjet F735. Ниже приведен мой код.

            DocFlavor docflavor = DocFlavor.INPUT_STREAM.TEXT_PLAIN_UTF_8;

            PrintRequestAttributeSet attr_set = new HashPrintRequestAttributeSet();

            attr_set.add(new Copies(2));

  PrintService[] service = PrintServiceLookup.lookupPrintServices(docflavor, attr_set);

             if (service.length==0) {
                    JOptionPane.showMessageDialog(null, "No Printer Selected");
                }

            else if (service.length > 0) {
                System.out.println("Selected printer is " + service[0].getName());

                    DocPrintJob pj = service[0].createPrintJob();
                    {
                        PrintService ps = pj.getPrintService();
                        FileInputStream fis = null;
                        try {
                            File file = new File("/home/ignu/Desktop/newfile");
                            fis = new FileInputStream(file);
                            Doc doc = new SimpleDoc(fis, docflavor, null);
                            pj.print(doc, attr_set);

1 Ответ

0 голосов
/ 17 сентября 2009

что PrintService.getSupportedDocFlavors возвращает для вас? Может быть, UTF-8 не поддерживается?

Edit:

"text / plain; charset = utf-8", похоже, не поддерживается. Попробуйте

DocFlavor docflavor = new DocFlavor.INPUT_STREAM ("application/octet-stream") 

вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...