Задание на печать отправлено на принтер, но ничего не напечатано. Джава - PullRequest
4 голосов
/ 19 января 2012

У меня проблема со службой печати Java.Мне нужно распечатать простой текстовый документ на моем принтере по умолчанию.Я использую HP Deskjet в качестве принтера на компьютере с Windows, все драйверы установлены.Вот исходный код, который я использую:

import java.io.*;
import javax.print.*;

public class PrintTest {
 public static void main(String[] args) throws IOException {
  File file = new File("print.txt");
  InputStream is = new BufferedInputStream(new FileInputStream(file));

  //Discover the default print service.
  PrintService service = PrintServiceLookup.lookupDefaultPrintService();

  //Doc flavor specifies the output format of the file.
  DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;  


  // Create the print job
  DocPrintJob job = service.createPrintJob();
  //Create the Doc
  Doc doc = new SimpleDoc(is, flavor, null);

  //Order to print
  try {
   job.print(doc, null);
  } catch (PrintException e) {
   e.printStackTrace();
  }  

  is.close();
  System.out.println("Printing done....");
 }

}

Я могу видеть задание печати в очереди на принтер за несколько миллисекунд до того, как оно исчезнет.Но ничего не печатается.Я слышал, это потому что Java Print Service в JDK 1.6 все еще глючит.Но я не совсем уверен.Есть идеи почему?

1 Ответ

0 голосов
/ 01 сентября 2016

Я знаю, что это очень поздний ответ, но у меня была такая же проблема в Windows с PDF-файлами (не с текстом). Кажется, что принтеры могут не справиться с собственными PDF-файлами, поэтому работа принимается, но ничего не происходит (без ошибок). Я решил эту проблему с помощью сторонней библиотеки Apache PdfBox , и она работала как чудо.

Я написал пример кода, ответив на аналогичный вопрос https://stackoverflow.com/a/39271053/935039.

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