2015-04-20 5 views
5

Ich entwickle eine Java App. Ich habe ein Kreisdiagramm mit jFreeChart erstellt und es zu einer PDF-Datei hinzugefügt, die mit der iTextPDF-Bibliothek erstellt wurde, aber ich finde keine Möglichkeit, die Grafik in der PDF auszurichten und zu zentrieren. Dies ist der Code, den ich mit dem Diagramm hinzuzufügen:Wie richte ich eine Grafik in iTextPDF aus?

PdfContentByte contentByte = writer.getDirectContent(); 

PdfTemplate template = contentByte.createTemplate(600, 600); 
Graphics2D graphics2d = template.createGraphics(600, 600, new DefaultFontMapper()); 
Rectangle2D rectangle2d = new Rectangle2D.Double(0, 0, 300, 300); 

resultsPieChart.draw(graphics2d, rectangle2d); 

graphics2d.dispose(); 
contentByte.addTemplate(template, 0, 0); 
+0

möglich Duplikat von [Wie ein PDFGraphis2D Objekt in iText positionieren?] (Http: // stackoverflow.com/questions/19024681/how-to-position-a-pdfgraphis2d-object-in-itext) –

Antwort

4

Sie fügen die Vorlage an den Koordinaten (0, 0). Normalerweise ist dies die linke untere Ecke der Seite.

Es gibt verschiedene Möglichkeiten, um sicherzustellen, dass Ihr Diagramm an einer anderen Position angezeigt wird. Zum Beispiel: Sie könnten die Mathematik machen und die Vorlage an einer anderen Koordinate hinzufügen. Wenn Sie mit einer A4-Seite arbeiten, werden Sie feststellen, dass die Größe Ihrer Grafik (600 x 600 Benutzereinheiten) nicht wirklich zur Seite passt (595 x 842 Benutzereinheiten).

Ich ziehe das Einwickeln der Vorlage innerhalb eines Image Objekt wie folgt:

Image chart = Image.getInstance(template); 

Diese Vorlage nicht rastern: wenn es von Vektordaten besteht, wird das Bild ein Vektor-Bild sein.

Jetzt kann ich viele convience Methoden verwenden. Zum Beispiel: Sie können es skalieren, um auf eine Seite zu passen, Sie können eine horizontale Ausrichtung einführen, Sie können das Bild sogar als Zelle zu einem PdfPTable hinzufügen, in diesem Fall wird es standardmäßig automatisch auf PdfPCell skaliert.

Weiterführende Literatur:

+0

Können Sie uns das vollständige Beispiel zeigen? Ich weiß nicht, wo ich die Vorlage einpacken muss. Vielen Dank! –

Verwandte Themen