bonjour,
apres plusieurs tests de plusieurs classes et methodes qui permet d'avoir un apercu et d'imprimer en java
voila a quoi j'ai aboutit
on ne peut pas imprimer un JPanel ou le conteneur d'une JDialog (ou JFrame) qui n'est pas affiché sur l'ecran
malheureusement c'est ca ce que je veux
moi j' ai un JPanel qui contient( trois ou 4 editorpane et un petit panel contenant une image et un JScrollPane )
j' ai utilisé cette classe :
http://www.javafr.com/codes/IMPRESSION-JPANEL-SANS-COUPURE-COMPOSANTS-BAS-PAGE_31743.aspx
comme ca :
Code Java :
Code :
// q mon jdialog (qui contient mon fameux JPanel) que j'etai obligé de l'afficher avant pour ne pas //avoir la feuille blanche dans l'impression MPanelPrinter hgf = new MPanelPrinter((JPanel)q.getContentPane()); hgf.setFitIntoPage(true); hgf.print();
avec cette classe la partie gauche du JPanel ne s'imprime pas ( le redimenssionement de cette classe n'est pas bien fait)
j'ai utilisé une autre methode
la voila :
Code Java :
/** Récupère le travail et affiche la boite de dialogue d'impression */ JFrame ff = new JFrame(); PrintJob job = getToolkit().getPrintJob(ff,"essai", null); if (job != null) { /** Recupere le Graphics dans lequel on va ecrire */ Graphics g = job.getGraphics(); if (g != null) { /** Sur le Container imprime l'ensemble de ses Components */ q.getContentPane().printAll(g); //g.dispose(); } /** Finit le travail */ job.end(); } // avec q.getContentPane() est le conteneur de ma jdialog quelle est aussi affiché a l'ecran
mais cette methode ma imprimer juste le premier editorpane de mon JPanel
j'ai utilisé aussi une autre classe mais c'est la meme chose
bref,
est ce que vous pouvez m'aider pour avoir un apercu et imprimer mon JPanel (avec l'option que le JPanel soit redimenssionner suivant les dimenssions de la page) et sans que le JDialog qui le contient soit afficher sur l'ecran
je vous remerci d'avance
si vous pouvez me donnez un peu de temps, je suis bloqué la dessus
merci