如何在iTextPDF中对齐图形?

时间:2015-04-20 20:21:16

标签: java pdf alignment itext jfreechart

我正在开发一个Java App。我使用jFreeChart创建了一个饼图,并将其添加到使用iText库创建的PDF文件中,但我无法找到一种方法来对齐PDF中的图形并使其居中。这是我用来添加图表的代码:

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);

1 个答案:

答案 0 :(得分:4)

您正在坐标(0, 0)处添加模板。通常,这是页面的左下角。

有多种方法可以确保您的图表显示在其他位置。例如:您可以执行数学运算并在不同的坐标处添加模板。如果你正在使用A4页面,你会发现你的图形大小(600乘600用户单位)并不真正适合页面(595乘842个用户单位)。

我更喜欢将模板包装在Image对象中,如下所示:

Image chart = Image.getInstance(template);

这不会栅格化您的模板:如果它由矢量数据组成,则图像将是矢量图像。

现在我可以使用大量的方法。例如:您可以缩放它以适合页面,您可以引入水平对齐,您甚至可以将图像作为单元格添加到PdfPTable,在这种情况下,它将缩放以适合PdfPCell默认自动。

进一步阅读: