RISOLTO Listener per gestire un printDialog in Java

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

Scripta14

Nuovo Utente
Messaggi
95
Reazioni
8
Punteggio
25
Buongiorno a tutti,

mi servirebbero dei suggerimenti o l'indicazione di documentazione approfondita, se possibile con esempi per gestire i listener di una printdialog. Ho già dato un'occhiata online, ma quello che ho trovato raramente mostrava come gestire gli eventi.

Codice:
PrinterJob pj=PrinterJob.getPrinterJob();
                     PrintService ps=pj.getPrintService();
                                          
                     if(pj.printDialog()) {
                         try {
                            pj.print();
                        Stampa.printToServer(rcd, ps.getName());
                        } catch (PrinterException e) {
                            // TODO Auto-generated catch block
                            System.out.println("errore di stampa "+e.getMessage());
                        }
                     }
1550660868687.webp

Il codice qui sopra funziona come potete vedere dall'immagine, ma mi servirebbe capire come gestire i listener per le varie opzioni della finestra di stampa. Sostanzialmente quello che mi serve è configurare le varie impostazioni della finestra di stampa intercettando le varie opzioni per un utilizzo di queste informazioni altrove.

Grazie in anticipo a tutti.
 
Si, ho dato un'occhiata anche a quel materiale, ma non mi mostra un esempio di ciò che sto cercando. Sostanzialmente mi serve trovare un esempio di come catturare la modifica del nome della stampante, oppure quale range di pagine e stato impostato.
Se qualcuno mi può dare qualche spunto su come gestire la casistica...
Grazie
 
Se qualcuno mi può dare qualche spunto su come gestire la casistica...
Penso sia questo (dalla doc linkata sopra):
The page setup dialog is initialized using the parameter passed to pageDialog. If the user clicks the OK button in the dialog, the PageFormat instance will be created in accordance with the user's selections, and then returned. If the user cancels the dialog, pageDialog returns the original unchanged PageFormat.

Quindi pare che tu possa usare l'istanza PageFormat ritornata...
 
Grazie per la risposta. Prima ancora di gestire il range delle pagine, mi servirebbe capire come gestire l'evento che mi permette di associare una stampante diversa da quella che java rileva come predefinata.
Una cosa del tipo:
Codice:
JComboBox comboBox = new JComboBox();
        comboBox.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
            }
        });
        panel_1.add(comboBox);
Questo è ovviamente un codice di esempio. Ma nel mio caso specifico come faccio ad avere una combobox dalla quale modificare la Stampante e conseguentemente catturare l'evento? Nell'interfaccia grafica (printDialog) ho una combobox, ma non ho idea su come richiamare addActionListener.
Grazie per l'aiuto.
--- i due messaggi sono stati uniti ---
Buongiorno a tutti. Ho trovato una soluzione che per ora mi soddisfa e volevo condividerla con la speranza che possa servire anche ad altri.
Codice:
                  PrinterJob pj=PrinterJob.getPrinterJob();
//                PrintRequestAttributeSet attributes= new HashPrintRequestAttributeSet();
//                attributes.add(new PageRanges(1,pages));
                
                if(pj.printDialog()) {
                    
                    ps=pj.getPrintService();
                    System.out.println("nome stampante modificata "+ps.getName()); //funziona
                    pj.print();
                    Stampa.printToServer(Nomefile da stampare, ps.getName());
                    
                
                    }
Ora vi chiedo se riuscite a darmi una mano. Avrei bisogno di ricavare da quanto scritto sopra il nome della stampante, il nome del driver, il nome della porta della stampante e come il foglio è orientato. Il nome della stampante l'ho ricavato tramite il pj.getPrintService().getName(), ma gli altri non riesco a trovare il modo. Nella documentazione non riesco a trovare nulla.
Spero qualcuno mi potrà aiutare perchè non so dove sbattere la testa.
Grazie in anticipo a tutti.
 
Ultima modifica:
Qualcuno riesce a darmi una mano? Mi servirebbe capire come si gestisce questo tipo di interfacce. Se qualcuno riesce a indicarmi anche della documentazione il più possibile chiara mi farebbe una cortesia.

Grazie a tutti
 
Alla fine ho usato la sequenza di codice che ho scritto sopra, mi serviva solo recuperare il nome della stampante selezionata.
Se qualcuno ha altri spunti può integrare questo thread, altrimenti si può chiudere come risolto. Grazie a tutti.
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top