Bonjour,

J'ai besoin d'imprimer des documents html en Java.

J'ai réussi a trouver comment régler les marges avec un printjob mais du coup l'HTML n'est pas interprété.J'aurais voulu savoir comment on peut rendre l'HTML interprétable car pour l'instant il ne m'imprime que mon document avec les balises alors que je voudrais que les balises soit interpréter ( que <BR/> ne s'affiche pas mais saute une ligne, par exemple) lors de l'impression.

mon code :
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
Imprimer.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
 
                    contenuHTML = contenuHTML.toString();
 
                    PrinterJob pj = PrinterJob.getPrinterJob();
                    PageFormat pf = pj.defaultPage();
                    Paper paper = new Paper();
                    paper.setSize(595, 842);
                    double margin = 1;
                    paper.setImageableArea(margin, margin, paper.getWidth() - margin, paper.getHeight() - margin);
                    pf.setPaper(paper);
                    pj.setPrintable(new MyPrintable(), pf);
 
                    if (pj.printDialog()) {
                        try {
                            pj.print();
                            System.out.println( "Impression");
                        } catch (PrinterException e) {
                            System.out.println(e);
                        }
                    }
            }
        });
 
[ ... ]
 
    class MyPrintable implements Printable {
        public int print(Graphics g, PageFormat pf, int pageIndex) {
            if (pageIndex != 0){
                return NO_SUCH_PAGE;
            }
 
            Graphics2D g2 = (Graphics2D) g;
            g2.setFont(new Font("Serif", Font.PLAIN, 13));
            g2.setPaint(Color.black);
            g2.drawString(contenuHTML, 20, 20);
            Rectangle2D outline = new Rectangle2D.Double(pf.getImageableX(), pf.getImageableY(), pf.getImageableWidth(), pf.getImageableHeight());
            g2.draw(outline);
            return PAGE_EXISTS;
        }
    }
Merci beaucoup d'avance si vous avez une idée.