2012-06-11 25 views
7

'daki bir AWT PrinterJob'dan nasıl algılandı? Java uygulamasında yerel yazdırma iletişim kutusu gösteren aşağıdaki kod var. Bir yazıcı seçilir ve Yazdır düğmesi tıklandığında‘PDF olarak kaydet…’, OS X

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

Bu kod çalışıyor, ancak kullanıcı sol alttaki “PDF” menüsünden herhangi bir seçeneği seçtiğinde çalışmıyor. "PDF" menüsündeki seçeneklerden biri seçildiğinde, getPrintService yöntemi son seçilen yazıcıyı (Lillith ekran görüntüsünden) döndürür.

Screenshot of OS X print dialog

herkes “... PDF olarak kaydet” algılamak için yapılmalıdır baskı iletişim kutusunda seçildi ve buna göre tepki verdiği önermek olabilir.

+0

program gerçek yazıcıyı aldığında ne yapar, ancak "PDF olarak kaydet ..." seçeneğini: Hemen şimdi kadar okumak, yine de biraz yardımcı olacağını umuyoruz? – millimoose

+0

Yazıcıda yazdırılan sayfaları alıyorum ve pdf veya postscript dosyası kaydedilmedi. –

+0

@trashgod Bu örnek yazdırmayı nerede yapıyor? – millimoose

cevap