2012-06-11 5 views
7

Ho il seguente codice che mostra una finestra di dialogo di stampa nativa nella mia applicazione java.Come rilevare 'Salva come PDF ...' è stato scelto da un AWT PrinterJob su 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); 
} 

Questo codice funziona bene quando si seleziona una stampante e il pulsante Stampa viene cliccato, ma non funziona quando l'utente seleziona alcuna opzione dal menu “PDF” in basso a sinistra. Il metodo getPrintService restituisce l'ultima stampante selezionata (Lillith dallo screenshot) quando viene selezionata una delle opzioni nel menu "PDF".

Screenshot of OS X print dialog

Qualcuno potrebbe suggerire che cosa dovrebbe essere fatto per rilevare quando “Salva come PDF ...” è stato selezionato nella finestra di dialogo di stampa e rispondere di conseguenza.

+0

cosa fa il tuo programma di fare quando si arriva alla stampante vera e propria, ma si seleziona "Salva come PDF ..."? – millimoose

+0

Ottengo le pagine stampate sulla stampante e nessun file PDF o PostScript salvato. –

+0

@trashgod Dove viene stampato questo esempio? – millimoose

risposta

0

Hai provato ad aggiungere un annuncio di lavoro di stampa? Basta leggere su di esso ora, spero che sarà di qualche aiuto:

Print Job Listener