2012-06-11 15 views
7

我有以下代碼,它顯示了我的java應用程序中的本機打印對話框。當選擇一臺打印機和打印按鈕被點擊如何檢測'另存爲PDF ...'是從OS X上的AWT PrinterJob中選取的

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); 
} 

此代碼工作正常,但是當用戶選擇從「PDF」菜單左下角任何選項,這是行不通的。當選擇「PDF」菜單中的一個選項時,getPrintService方法返回最後選擇的打印機(屏幕截圖中的Lillith)。

Screenshot of OS X print dialog

可能有人建議應該做些什麼來檢測時,「另存爲PDF ...」,在打印對話框中選擇,並作出相應的反應。

+0

是什麼時,得到實際打印機程序做,但你選擇「另存爲PDF ...」? – millimoose

+0

我得到打印機打印的頁面,並且沒有保存pdf或postscript文件。 –

+0

@trashgod該示例在哪裏打印? – millimoose

回答

0

您是否嘗試添加打印作業監聽器?剛纔讀了它,我希望這將是一些幫助:

Print Job Listener