Задание на печать отправлено на принтер, но ничего не напечатано. Джава
У меня проблема с сервисом печати 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.