bonjour a tous.
J'aimerai pouvoir imprimé le contenu d'un JEditorPane (du HTML) directement sur une imprimante de mon reseau.
Je me sers d'une class printUtilities qu'on trouve sur le net, qui permet d'imprimer le contenu d'un element swing sans trop de probleme.
J'arrive à selectionné tout seul (sans aucune fenetre) la bonne imprimante.
J'arrive à imprimer le contenu (avec l'aide d'une fenetre de selection)
mais je n'arrive pas à faire la meme chose en passant les arguments directement.
voici mon code
j'ai deja imprimé près de 20 feuilles (recto verso) pour testé, et je commence à devenir fou là.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 public void print() { try { PrinterJob printJob = PrinterJob.getPrinterJob(); PrintService[] service=printJob.lookupPrintServices(); //liste des imprimantes connus printJob.setPrintable(this); boolean matchFound=false; int count=service.length; for(int i=0;i<count;i++){ //on selectionne l'imprimante nomé copieur if((service[i].getName().indexOf("copieur")!=-1)||(service[i].getName().indexOf("COPIEUR")!=-1)){ printJob.setPrintService(service[i]); i=count; matchFound=true; } } //si on trouve pas l'imprimante, alors on affiche une fenetre de choix if(!matchFound) printJob.printDialog(); /* //le code ci dessous m'a permis de récupéré les largeurs et hauteurs du //papier et de l'element à imprimer. avec pageDialg() ca fonctionne sans //soucis PageFormat pp =printJob.pageDialog(printJob.defaultPage()); System.out.println("iw :"+pp.getPaper().getImageableWidth()+ " ih:"+pp.getPaper().getImageableHeight()+ " h:"+pp.getPaper().getHeight()+ " w:"+pp.getPaper().getWidth() + " x:" +pp.getPaper().getImageableX()+ " y:"+pp.getPaper().getImageableY() + " or : " +pp.getOrientation() ); */ //la meme chose mais en mettant les valeurs dans le code et la il imprime tout SAUF ce que je veux :( PageFormat ppp = printJob.defaultPage(); Paper pa = ppp.getPaper(); pa.setImageableArea(28.346456692913385,28.346456692913385,538.5826771653543,785.1968503937007); ppp.setOrientation(0); pa.setSize(595.275590551181,841.8897637795276); ppp.setPaper(pa); printJob.setPrintable(this,ppp); printJob.print(); //je verifie que mon pageFormat a bien les bonnes valeurs , c'est le cas, //pourtant SANS pageDialog çà ne fonctionne pas, alors qu'avec oui System.out.println("iw :"+ppp.getPaper().getImageableWidth()+ " ih:"+ppp.getPaper().getImageableHeight()+ " h:"+ppp.getPaper().getHeight()+ " w:"+ppp.getPaper().getWidth() + " x:" +ppp.getPaper().getImageableX()+ " y:"+ppp.getPaper().getImageableY() + " or : " +ppp.getOrientation() ); } catch (Exception pe) { System.out.println("Error printing: " + pe); } }
Que fais la fonctione pageDialog() que ne fait pas mon code ?!?
parce que mon tableau HTML ressort sans probleme avec pageDialog alors qu'il ressort en taille de DINGUE et coupé(genre police 50-60) sans pageDialog
toute idée est bienvenue car moi j'en ai plus
Partager