Задание на печать отправлено на принтер, но ничего не напечатано. Джава

У меня проблема с сервисом печати 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 ответ

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

Я написал пример кода, ответив на аналогичный вопрос /questions/6700087/pdf-java-print-zadanie-otpravleno-v-ochered-zadanij-printera-no-nichego-ne-pechataetsya/6700093#6700093.

Другие вопросы по тегам