首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

ireport 四 饼图制作过程(2)

2012-10-31 
ireport 4 饼图制作过程(2)设计好报表后,把*.jasper文件拷贝到工程中,可以开始编码了,但是上一篇写的只是

ireport 4 饼图制作过程(2)

设计好报表后,把*.jasper文件拷贝到工程中,可以开始编码了,但是上一篇写的只是设计器中预览出现中文,而程序生成的PDF报表依旧不能显示中文,这篇将会做个补充.

先填代码吧:

?

package cn.com.gkhb.ireport.demo;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.HashMap;import net.sf.jasperreports.engine.JRException;import net.sf.jasperreports.engine.JRExporter;import net.sf.jasperreports.engine.JRExporterParameter;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.JasperPrint;import net.sf.jasperreports.engine.export.JRPdfExporter;/** * 导入报表为pdf文件 */public class ExportDemo {/** * 报表模板位置 */private final static String jasperfile = "E:/myeclipse/IreportDemo/WebRoot/WEB-INF/jasperfiles/pieChart.jasper";/** * 目标文件位置 */private final static String desc = "G:/download/font/pie_chart_demo.pdf";/** * register database driver for mysql */static {try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException ex) {ex.printStackTrace();}}@SuppressWarnings("unchecked")public static void main(String[] args) {HashMap hm = new HashMap();try {// Fill the report using an empty data sourceJasperPrint print = JasperFillManager.fillReport(jasperfile, hm, connectionProvider());// Create a PDF exporterJRExporter exporter = new JRPdfExporter();//JRExporter exporter = new JRHtmlExporter();// Configure the exporter (set output file name and print object)exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, desc);exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);// Export the PDF fileexporter.exportReport();} catch (JRException e) {e.printStackTrace();System.exit(1);} catch (Exception e) {e.printStackTrace();System.exit(1);}}/** * database connection provider * @return */protected static Connection connectionProvider() {Connection connection = null;String url = "jdbc:mysql://localhost:3306/test";String user = "root";String password = "";try {connection = DriverManager.getConnection(url, user, password);} catch (SQLException ex) {ex.printStackTrace();}return connection;}/* * jpegJasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters_header, dataSource);out = response.getOutputStream();JasperExportManager.exportReportToPdfStream(jasperPrint, out);if (printType==0)  //if pdf stream{ JasperExportManager.exportReportToPdfStream(jasperPrint, out); } else {         // if jpeg image stream     int pageIndex = 0; BufferedImage pageImage = new BufferedImage(jasperPrint.getPageWidth() + 1, jasperPrint.getPageHeight() + 1, BufferedImage.TYPE_INT_RGB); JRGraphics2DExporter exporter = new JRGraphics2DExporter();  exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRGraphics2DExporterParameter.GRAPHICS_2D, pageImage.getGraphics());  exporter.setParameter(JRExporterParameter.PAGE_INDEX, new Integer(pageIndex));  exporter.exportReport();ImageIO.write(pageImage, "jpeg", out);}out.close(); */}

?这个时候如果需要PDF生成后显示中文,需要把安装的字体打包成JAR导入classpath中去,步骤如下:

?

进入ireport安装目录下,然后进入:\ireport\fonts文件夹,用将文件夹下所有内容直接打包成zip,修改后缀为jar,加入到项目classpath就OK了,此时应该就能生成pdf中有中文显示了

?

((注:转载须标明此文来源连接

?

http://xiaomy.iteye.com/blog/1139595

?

,否则视为侵权)

)

热点排行