1 pièce(s) jointe(s)
Problème d'impression avec PrinterJob
Bonjour,
J'explique mon problème. Je souhaiterai pouvoir imprimer des fichiers depuis mon programme java. (Fichiers pdf générés par le programme enfin c'est pas important). Pour cela j'utilise un PrinterJob.
Donc ma fenêtre d'impression s'affiche correctement, j'ai la liste des imprimantes qui s'affiche etc.... Lorsque j'imprime tout fonctionne.
Mais voilà, je me suis rendu compte que si je voulais imprimer plusieurs copies il ne m'en imprimait qu'une seule.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
private void afficheFenetreImprimante(File pdf) {
FileInputStream fis = new FileInputStream(pdf;
FileChannel fc = fis.getChannel();
ByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
PDFFile pdfFile = new PDFFile(bb); // Create PDF Print Page
PDFPrintPage pages = new PDFPrintPage(pdfFile);
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();;
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
PrintService service = ServiceUI.printDialog(null, 200, 200, printService, defaultService, flavor, pras); //Affichage de la boite de dialogue d'impression
if (service != null) {
PrinterJob pjob = PrinterJob.getPrinterJob();
PageFormat pf = PrinterJob.getPrinterJob().defaultPage();
pjob.setJobName(f.getName());
pjob.setPrintService(service);
Book book = new Book();
book.append(pages, pf, pdfFile.getNumPages());
pjob.setPageable(book);
// On demande à l'imprimante sélectionnée d'imprimer.
pjob.print();
} |
J'ai fait un "pjob.getCopies();" et effectivement il n'en contient qu'une seule alors que j'ai indiqué un nombre de copies plus grand dans la boite de dialogue.
Et en faisant moi meme dans le code un "pjob.setCopies(3);" il imprime bien 3 fois la page.
Donc comment faire pour que mon PrinterJob prenne en compte le nombre de copies désiré ?
Merci d'avance.
PS: En pièce jointe c'est ma boite de dialogue d'impression.