Precedente :: Successivo |
Autore |
Messaggio |
ZioCrick Eroe
Registrato: 19/05/19 10:20 Messaggi: 50
|
Inviato: 09 Ago 2022 10:35 Oggetto: Stampare una Form su file da programma. |
|
|
Buongiorno,
riesco a stampare una Form da programma utilizzando una classe del tipo;
Codice: |
public class Documento extends javax.swing.JDialog implements Printable
|
al cui interno c'è:
Codice: |
PrinterJob job = PrinterJob.getPrinterJob();
PageFormat format = job.defaultPage();
format.setOrientation(PageFormat.PORTRAIT);
job.setPrintable((Printable) this, format);
try{
if(job.printDialog()) {
job.print();
}
} catch(Exception ex) {
...
}
|
Ho dovuto anche crearmi il metodo Print con l'Override.
La stampa la ottengo, ma la domanda è:
Come mai quando stampo un documento qualsiasi da LibreOffice o Mousepad, mi compare la finestra di dialogo in cui posso scegliere tra la stampante e l'opzione "Print to file" e invece da programma compare solo la stampante, senza l'opzione "Print to file"?
Qualcuno sa darmi una mano?
Il mio scopo è di poter scegliere se stampare su stampante oppure salvare il tutto in un file. |
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11577 Residenza: Tokelau
|
Inviato: 09 Ago 2022 13:22 Oggetto: |
|
|
ottieni questo? |
|
Top |
|
|
ZioCrick Eroe
Registrato: 19/05/19 10:20 Messaggi: 50
|
Inviato: 09 Ago 2022 14:41 Oggetto: |
|
|
Eh, qualcosa di simile.
Pensa che mi sono accorto solo ora che nella finestra di dialogo c'è la casella di spunta per la "Print to file".
Io la cercavo nella lista delle stampanti, visto che ho installato la stampante virtuale che stampa i documenti in pdf.
Però selezionando la checkbox per la "Stampa su file" mi permette di salvare solo nel formato .ps che quando lo apro, al posto dei testi che dovrebbero comparire perché presenti nella Form, mi mostra un rettandolo completamente nero.
Perché????? |
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11577 Residenza: Tokelau
|
Inviato: 09 Ago 2022 15:33 Oggetto: |
|
|
questa nota potrebbe esserti utile
Citazione: | Presents a dialog to the user for changing the properties of the print job. This method will display a native dialog if a native print service is selected, and user choice of printers will be restricted to these native print services. To present the cross platform print dialog for all services, including native ones instead use printDialog(PrintRequestAttributeSet). |
|
|
Top |
|
|
ZioCrick Eroe
Registrato: 19/05/19 10:20 Messaggi: 50
|
Inviato: 09 Ago 2022 21:50 Oggetto: |
|
|
Già, il fatto è che non riesco a capire come usare quel PrintRequestAttributeSet.
Ho provato a copiare un esempio trovato in rete:
Codice: | PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(MediaSizeName.ISO_A4);
aset.add(new PrinterResolution(300, 300, PrinterResolution.DPI));
aset.add(new MediaPrintableArea(2, 2, 210 - 4, 297 - 4, MediaPrintableArea.MM))
if(job.printDialog(aset)) {
job.print(aset);
}
|
Ovviamente con la struttura try necessaria, ma nulla, mi produce ancora il rettangolo nero, semplicemente più grande, credo in formato A4. |
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11577 Residenza: Tokelau
|
Inviato: 10 Ago 2022 07:59 Oggetto: |
|
|
onestamente sono già tanto fuori del mio campo di competenze... |
|
Top |
|
|
ZioCrick Eroe
Registrato: 19/05/19 10:20 Messaggi: 50
|
Inviato: 10 Ago 2022 10:00 Oggetto: |
|
|
Ma ci mancherebbe SverX
Io ti ringrazio per il tuo interessamento e disponibilità
Spero anche che ci sia qualche anima pia che riesca a darmi qualche dritta perchè io continuo a fare ricerche tutti i giorni ma non riesco a racappezzarmi. |
|
Top |
|
|
|