我正在开发一个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);
答案 0 :(得分:4)
您正在坐标(0, 0)
处添加模板。通常,这是页面的左下角。
有多种方法可以确保您的图表显示在其他位置。例如:您可以执行数学运算并在不同的坐标处添加模板。如果你正在使用A4页面,你会发现你的图形大小(600乘600用户单位)并不真正适合页面(595乘842个用户单位)。
我更喜欢将模板包装在Image
对象中,如下所示:
Image chart = Image.getInstance(template);
这不会栅格化您的模板:如果它由矢量数据组成,则图像将是矢量图像。
现在我可以使用大量的方法。例如:您可以缩放它以适合页面,您可以引入水平对齐,您甚至可以将图像作为单元格添加到PdfPTable
,在这种情况下,它将缩放以适合PdfPCell
默认自动。
进一步阅读: