problème format de page à l'impression
Bonjour,
Je tombe sur un problème d'impression que je n'arrive pas à résoudre !
J'ai créé une classe en java (swing) qui permet d'imprimer des banderoles. Ma classe implémente Printable.
Je dois imprimer des banderoles de différentes tailles (A2: 594 x 420 mm et un format non standard 594 x 300 mm). Mon imprimante est configurée par défaut en A2. Lorsque je lance une impression en A2, tout se passe bien, la page sort sans soucis. Mais lorsque je configure mon format de papier (dans mon application) en 594 x 300 mm, le panneau de mon imprimante m'indique "err format papier". Et je suis obligé d'intervenir au niveau des boutons de mon imprimante pour que ma page sorte !
Je ne sais pas comment faire pour imprimer ma feuille 594x300 alors que mon imprimante est configurée par défaut en 594x420 et ainsi ignorer cette erreur (sans obliger l'utilisateur à passer par un printDialog) !
J'ai donc essayé de modifier le format de l'impression avec les classes PageFormat et Paper avant d'appeler la méthode Print. En debug, les modifs sont bien prises en compte mais j'ai tout de même une erreur sur le panneau de mon imprimante :(
Voilà le code utilisé pour imprimer :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| if (s.equals(btnPrint)) {
if (cmbFormat.getSelectedItem().equals("59,4 X 42")) {
PrinterJob printJob = PrinterJob.getPrinterJob();
PageFormat pageFormat = printJob.defaultPage();
printJob.setPrintable(this, pageFormat);
try {
printJob.print();
} catch (Exception exception) { }
}
else {
// format 594 x 300 mm
PrinterJob printJob = PrinterJob.getPrinterJob();
PageFormat pf = printJob.defaultPage();
Paper paper = pf.getPaper();
paper.setImageableArea(15, 15, (30/2.54*72) - (2*15), (59.4/2.54*72) - (2*15));
pf.setPaper(paper);
printJob.setPrintable(this, pf);
try {
printJob.print();
} catch (PrinterException exception) { }
}
} |
Est-ce que quelqu'un à une idée ? Je vous en serai très reconnaissant !
Merci beaucoup