JFreeChart和iText使用总结
iText使用总结:
中文乱码
方案1:
本方案需要下载iTextAsian.jar包来导入中文字体
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); com.lowagie.text.Font cnFont = new com.lowagie.text.Font(bfChinese, 12, com.lowagie.text.Font.NORMAL); Paragraph paragraph = new Paragraph("你好", cnFont);
font = new Font(BaseFont.createFont("/usr/share/fonts/truetype/simsun.ttc,1",BaseFont.IDENTITY_H, BaseFont.EMBEDDED));
Document document = new Document();document.open();PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filePath));PdfContentByte cb = writer.getDirectContent();PdfTemplate tp = cb.createTemplate(width, height);Rectangle2D r2d = new Rectangle2D.Double(0, 0, width, height);JFreeChart pieChart = ChartFactory.createPieChart();Graphics2D g2d = tp.createGraphics(width, height, new DefaultFontMapper());pieChart.draw(g2d, r2d);Image image = Image.getInstance(tp);
JFreeChart pieChart = ChartFactory.createPieChart();BufferedImage bufferedImage = pieChart.createBufferedImage(width, height);Image lcImage = Image.getInstance((java.awt.Image) bufferedImage, null);
JFreeChart pieChart = ChartFactory.createPieChart();BufferedImage bi = pieChart.createBufferedImage(width, height);ByteArrayOutputStream out = new ByteArrayOutputStream();ImageIO.write(bi, "png", out);byte[] data = out.toByteArray();Image scImage = Image.getInstance(data);