javax打印实际上没有打印任何东西

时间:2015-12-03 14:11:58

标签: java printing

使用以下代码拼命尝试打印文档。正在将文档添加到打印机队列中,但实际上没有任何文件从打印机中出来。

    PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
    PrintService printService[] = PrintServiceLookup.lookupPrintServices(null, null);
    InputStream stream = new ByteArrayInputStream("hello world!\f".getBytes("UTF8"));

    PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
    pras.add(new Copies(1));

    DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
    PrintService service = ServiceUI.printDialog(null, 200, 200, printService, defaultService, flavor, pras);
    DocPrintJob job = service.createPrintJob();

    DocAttributeSet das = new HashDocAttributeSet();
    Doc doc = new SimpleDoc(stream, flavor, das);

    PrintJobWatcher pjw = new PrintJobWatcher(job);
    job.print(doc, pras);
    pjw.waitForDone();

我得到的打印对话框显示正确的默认打印机(如下所示),以及其他可用打印机列表:

printer dialog

如果我将打印机更改为" Microsoft打印到PDF",我会得到一个空的(0kb)pdf。有趣的是,如果我打勾"打印到文件"我得到一个包含正确内容的prn文件(" hello world!FF")。

我错过了什么?

0 个答案:

没有答案