Печать HTML-файла с использованием Java без отображения диалогового окна печати для пользователя
Я пытаюсь напечатать html-файл напрямую на принтер по умолчанию, не показывая пользователю диалоговое окно печати.
Я только что получил приведенный ниже код из некоторых онлайн-учебников, и он хорошо работал для файла PNG.
import javax.print.*;
import javax.print.attribute.*;
import java.io.*;
public class Printing {
public static void main(String args[]) throws Exception {
String filename = args[0];
PrintRequestAttributeSet pras =
new HashPrintRequestAttributeSet();
DocFlavor flavor = DocFlavor.INPUT_STREAM.PNG;
PrintService printService[] =
PrintServiceLookup.lookupPrintServices(flavor, pras);
PrintService defaultService =
PrintServiceLookup.lookupDefaultPrintService();
PrintService service = ServiceUI.printDialog(null, 200, 200, printService, defaultService, flavor, pras);
if (service != null) {
DocPrintJob job = service.createPrintJob();
FileInputStream fis = new FileInputStream(filename);
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
job.print(doc, pras);
Thread.sleep(10000);
}
System.exit(0);
}
}
Я хотел бы изменить DocFlavor flavor = DocFlavor.INPUT_STREAM.PNG;
в DocFlavor flavor = DocFlavor.INPUT_STREAM.<some html format>;
Пожалуйста, предложите, какой формат будет уместным для использования здесь?
и, пожалуйста, предложите, как избежать появления диалогового окна печати при запуске этого кода.?
Спасибо заранее Сэнди
1 ответ
Решение
PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
// PrintService service = ServiceUI.printDialog(null, 200, 200, printService, defaultService, flavor, pras);
if (service != null) {
... the rest code
Вы можете использовать только службу по умолчанию, а не показывать из диалога