使用 Afreechart 和 itextg 将折线图添加到 Pdf 文件

Add lineChart to Pdf file using Afreechart and itextg

我正在尝试使用 itext 和 AFreeChart 将折线图添加到 android 中的 Pdf 文件。我在 java 中使用 itextpdf 和 JFreeChart 完成了此操作。但我被困在将图表添加到 pdf 的部分。请帮忙。

我不知道如何将 canvas 绑定到 PdfTemplate,或者是否有不同的方法,欢迎任何建议。

这是我的android代码

AFreeChart chart = ChartFactory.createLineChart("R","Unit1","unit2",dataset, 
                PlotOrientation.HORIZONTAL,true,false,false);
PdfContentByte cb = pdfWriter.getDirectContent();

PdfTemplate tp = cb.createTemplate(100,200);
Canvas canvas = new Canvas();
RectShape rectShape = new RectShape(0,0,100,200);
chart.draw(canvas,rectShape);
cb.addTemplate(tp,280,35);

这是我的Java代码

PdfContentByte cb = pdfWriter.getDirectContent();
PdfTemplate tp = cb.createTemplate(width, height);
Graphics2D g2d = tp.createGraphics(width, height, new DefaultFontMapper());
Rectangle2D r2d = new Rectangle2D.Double(0, 0, width, height);
chart.draw(g2d, r2d);

pdf 中根本没有绘制图表。

我已经使用位图找到了问题的答案。

代码如下

Bitmap bitmap = Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
RectShape rectShape = new RectShape(0,0,width,height);
chart.draw(canvas,rectShape);
ByteArrayOutputStream stream3 = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream3);
Image temp = Image.getInstance(stream3.toByteArray());
temp.setAbsolutePosition(0,0);
tp.addImage(temp);
cb.addTemplate(tp,0,100);