【发布时间】:2017-05-09 07:45:58
【问题描述】:
如何以静默方式将“java.awt.print.Printable”对象打印到 PDF?
有几点需要注意:
- 我没有 pdf 文件格式的数据
- 我正在处理现有代码,因此无法离开可打印界面
所以我可以用 job.printDialog() 很好地打印它。但我需要能够默默地做到这一点(无需用户输入)。可用的 PDF 打印机是“Adobe PDF”,我想如果需要可以安装其他打印机。
这是基本代码:
Printable printout = /*object*/;
Book pageable = new Book();
pageable.append(printout, pageFormat);
DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PAGEABLE;
PrintRequestAttributeSet patts = new HashPrintRequestAttributeSet();
// Add Filepath?
PrintService[] ps = PrintServiceLookup.lookupPrintServices(flavor, patts);
if (ps.length == 0)
throw new IllegalStateException("No Printer found");
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintService(ps[0]);
job.setPrintable(printout);
【问题讨论】: