Bonjour à tous,

je souhaite créer un document pdf (avec iText) contenant un graphique de taille fixe dans ma page. Pour générer le graphique, j'utilise jFreeChart.

Mon problème est que lorsque je donne la taille du graphique à insérer dans le pdf, les labels de l'axe horizontal ne sont pas affichés (police trop grande) et que ceux de l'axe vertical ont également une police trop grande.

Je souhaiterais donc savoir comment il est possible de définir la police (type et taille) des axes du graphique.

Egalement, comment est il possible de définir le "pas" de l'axe des ordonnées ?

Merci de votre aide.

ScreenShot du rendu Pdf :



Ci dessous, le code utilisé.
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
62
 
public GenerePdf() 
    {
        Document document = new Document(PageSize.A4);
 
        try {
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:\\test.pdf"));
            document.addCreationDate();
            writer.setPageEvent(this);
            document.setMargins(45f,45f,30f,50f);
            document.open();
 
            int iHauteurGraphe = 160;
            int iLargeurGraphe = 260;
 
            DefaultCategoryDataset dataset = new DefaultCategoryDataset();
 
            for(int iCpt = 0; iCpt < 20; iCpt++)
            {
                dataset.addValue( 10*iCpt, "donnees", ""+iCpt+1 );
            }
 
            JFreeChart graphique = ChartFactory.createStackedBarChart( "", "", 
                "", dataset, PlotOrientation.VERTICAL, false, false, false );
 
            graphique.getTitle().setMargin(2.0,0.0,0.0,0.0);
            TextTitle t = new TextTitle("Courbe de rentabilité", new java.awt.Font ("Arial", java.awt.Font.PLAIN, 11));
            java.awt.Font fArialGraphe = new java.awt.Font ("Arial", java.awt.Font.PLAIN, 11);
 
            t.setPosition(RectangleEdge.TOP);
            t.setWidth(10);
            t.setHorizontalAlignment(HorizontalAlignment.CENTER);
            t.setMargin(0.0, 0.0, 4.0, 4.0);
            t.setPaint(Color.BLUE);
            graphique.addSubtitle(t);
 
 
            CategoryPlot plot = graphique.getCategoryPlot();
            Color cBleu = new Color(153,153,255);
            plot.getRenderer().setSeriesPaint(0,cBleu);
            graphique.setBorderVisible(false);
            graphique.setBackgroundPaint(null);
 
            PdfContentByte cb = writer.getDirectContent();
            PdfTemplate tp = cb.createTemplate(iLargeurGraphe, iHauteurGraphe);
            Graphics2D g2D = tp.createGraphics(iLargeurGraphe, iHauteurGraphe, new DefaultFontMapper());
            Rectangle2D r2D = new Rectangle2D.Double( 0, 0, iLargeurGraphe, iHauteurGraphe);
            graphique.draw(g2D, r2D);
            g2D.dispose();
            cb.addTemplate(tp, 260, 100);
 
        }
        catch(DocumentException de) 
        {
            System.err.println(de.getMessage());
        }
        catch(IOException ioe) 
        {
            System.err.println(ioe.getMessage());
        }
        document.close();
    }