Печать 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

Вы можете использовать только службу по умолчанию, а не показывать из диалога

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