首页 > 解决方案 > 用 Java 打印 HTML 文本

问题描述

我正在尝试使用以下代码在 Java 中打印 HTML 文本:

Print.printData(Print.findPrintService("HPE85171 (HP Officejet Pro 8600)"), html);  //html is a HTML String

public static PrintService findPrintService(String printerName) {
        System.out.println("");
        PrintService service = null;

        PrintService[] services = PrinterJob.lookupPrintServices();
        
        for (int index = 0; service == null && index < services.length; index++) {
            System.out.println(services[index].getName());
            if (services[index].getName().equalsIgnoreCase(printerName)) {

                service = services[index];
            }
        }
        System.out.println("");
        return service;
}

public static boolean printData(PrintService printService , String printText) {
        try {
            HashDocAttributeSet set = new HashDocAttributeSet();
            SimpleDoc doc = new SimpleDoc(printText.getBytes(), javax.print.DocFlavor.BYTE_ARRAY.AUTOSENSE, set);
            DocPrintJob job = printService.createPrintJob();
            job.print(doc, new HashPrintRequestAttributeSet());
            System.out.println("Job sent to printer succesfully");
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

问题是 Windows 打印机图标出现在系统托盘中,但其工具提示仅显示“要打印的 0 个文档”。有谁知道我该如何解决这个问题?

标签: javaprintingawt

解决方案


推荐阅读