web应用中集成Ireport

从项目需求,资源,技术上的综合考量, 最后还是选择开源软件【jasperReports+Ireport】, 作为各种报表,模板打印的工具。  已经在生产环境上运行。

web架构: S2SH + Ireport。

Ireport网上的中文资料很少, 实际操作起来会遇到各种问题,中文显示问题, Ireport模板绘制问题, 应用在window下没错,linux下报错等一系列奇葩问题。

当时选择哪个版本来集成到项目中的时候就折腾了很久,  一开始取得最新的版本iReport-5.6.0,但是执行的时候总是报错,看log应该是版本的问题, 最后还是选择了iReport-3.7.0。


下载Ireport之后再 iReport-3.7.0\ireport\modules\ext 的目录下面 找到 jasperreports-3.7.0.jar,  直接放到项目的lib下面。


ireport生成pdf的程序部分:


ireport生成pdf的程序部分

            List listInfo= new ArrayList();
	        // 生成导出类JRPdfExporter 来自JRExporter  
			JRPdfExporter exporter = new JRPdfExporter();

	        JRBeanCollectionDataSource beanColDataSource1_1 = new JRBeanCollectionDataSource(
	        	printDatas);

			// jrxml 编译 .jasper 文件
			JasperReport mainjReport1_1 = JasperCompileManager
					.compileReport(mainDesign1_1);

			Map paramMap1_1 = new HashMap();
			String imagePath = reportpath + File.separator + "images" + File.separator;
	        InputStream imgsrc = new FileInputStream(qRCode);
	        String logo_Path = imagePath + "logo1.png"; 
	        InputStream a_imgsrc = new FileInputStream(logo_Path);
	        //  加logo 和 二维码 
	        paramMap1_1.put("qrcode1", imgsrc);  
	        paramMap1_1.put("a_logo", a_imgsrc);

			JasperPrint print1_1 = JasperFillManager.fillReport(mainjReport1_1, paramMap1_1,
					beanColDataSource1_1);
                        listInfo.add(print1_1);
			// 多个报表模板操作
			exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, listInfo);

            FileOutputStream output = new FileOutputStream(“具体要到处的pdf文件全路径”);
		    exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, output);


			// 输出
		    exporter.exportReport();




 

Ireport 模板生成部分: ireport画模板相对比较麻烦, 尤其是子报表,子报表嵌套子报表,  我这里有一些ireport的相关资料,还有一些字体和jar文件也可以下载。  有需要的可以去下载,也可以一起探讨。

web应用中集成Ireport_第1张图片

字体(微软雅黑, 粗体 ,宋体, 粗体) + jasperreports-3.7.1.jar:

http://download.csdn.net/detail/d124939312/9830360


Ireport相关资料:

http://download.csdn.net/detail/d124939312/9830357

***如果是子报表嵌套子报表,生成的.jasper要放到web应用的classpath下面,不然ireport加载不到相关的jasper文件。



window下没错,linux下报错:  这个是因为字体的原因造成的,  windows下字体很全,  但是我们项目是部署到linux上的, ireport上用的字体在linux上没有,  所以linux上跑起来会报字体的问题。

解决1: linux上安装相关字体。

解决2: 修改jasperreports-3.7.1.jar里面的配置文件default.jasperreports.properties的配置信息

net.sf.jasperreports.awt.ignore.missing.font=false        把   false  改成  true。  虽然比较暴力但是还是解决了问题,更推荐用第一种方式。 




你可能感兴趣的:(杂谈)