bonjour tout le monde,
je cherche à imprimé le contenu HTML d'un JEditorPane directement en paysage sur une imprimante connecté au reseau.
J'arrive a selectionné automatiquement la bonne imprimante.
J'arrive a imprimé sans pageDialog() mais ca n'imprime pas du tout comme je voudrais (texte découpé, police énorme ...)
en rajoutant le code pageDialog() ya une fenetre qui me laisse le choix de la taille du papier (A4), la taille des marges et portrait/paysage.
En mettant ces paramettres moi meme en code ca ne fonctionne pas :(
voici le code de ma partie imprimé :
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);
}
}merci de bien vouloir m'aider