如何检测“另存为 PDF…”是从 OS X 上的 AWT PrinterJob 中挑选出来的
Posted
技术标签:
【中文标题】如何检测“另存为 PDF…”是从 OS X 上的 AWT PrinterJob 中挑选出来的【英文标题】:How to detect the ‘Save as PDF…’ was picked from an AWT PrinterJob on OS X 【发布时间】:2012-06-14 18:24:41 【问题描述】:我有以下代码在我的 java 应用程序中显示本机打印对话框。
PrinterJob job = PrinterJob.getPrinterJob();
PrintRequestAttributeSet atts = new HashPrintRequestAttributeSet();
atts.add(DialogTypeSelection.NATIVE);
if (job.printDialog(atts))
PrintService newlyUsedService = job.getPrintService();
DocPrintJob docJob = newlyUsedService.createPrintJob();
// print the passed javax.print.SimpleDoc object.
docJob.print(simpleDoc, atts);
This code works fine when a printer is selected and the Print button is clicked, but it does not work when the user selects any option from the “PDF” menu at the bottom left. getPrintService方法返回最后一个选定的打印机(从屏幕截图中的Lillith
)时,选择“PDF”菜单中的一个选项时。
谁能建议应该做些什么来检测何时在打印对话框中选择了“另存为 PDF...”并做出相应的响应。
【问题讨论】:
当你的程序得到真正的打印机,但你选择“另存为 PDF...”时,它会做什么? 我在打印机上打印了页面,但没有保存 pdf 或 postscript 文件。 @trashgod 该示例在哪里打印? 我用Preview
和Save as PDF
都试过了。编辑:我也尝试在pageDialog()
中使用Any printer
。
对不起,我想引用这个example。
【参考方案1】:
您是否尝试过添加打印作业侦听器?现在就阅读它,我希望它会有所帮助:
Print Job Listener
【讨论】:
以上是关于如何检测“另存为 PDF…”是从 OS X 上的 AWT PrinterJob 中挑选出来的的主要内容,如果未能解决你的问题,请参考以下文章