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 source
			JasperPrint print = JasperFillManager.fillReport(jasperfile, hm, connectionProvider());

			// Create a PDF exporter
			JRExporter 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 file
			exporter.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;
	}
	
	/*
	 * jpeg
	JasperPrint 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

 

,否则视为侵权)

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值