ireport+jasperreport学习笔记

上传人:野鹰 文档编号:3027460 上传时间:2017-07-30 格式:DOC 页数:105 大小:5.46MB
返回 下载 相关 举报
ireport+jasperreport学习笔记_第1页
第1页 / 共105页
ireport+jasperreport学习笔记_第2页
第2页 / 共105页
ireport+jasperreport学习笔记_第3页
第3页 / 共105页
ireport+jasperreport学习笔记_第4页
第4页 / 共105页
ireport+jasperreport学习笔记_第5页
第5页 / 共105页
点击查看更多>>
资源描述

《ireport+jasperreport学习笔记》由会员分享,可在线阅读,更多相关《ireport+jasperreport学习笔记(105页珍藏版)》请在金锄头文库上搜索。

1、第一章 初识 JasperReports一、Ireport 中生成 pdf 中文字码显示,和自定义字体做法1、自定义字体集(没成功,待研究)net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font : pdfFontName : STSong-LightpdfEncoding : UniGB-UCS2-HisPdfEmbedded : true at net.sf.jasperreports.engine.export.JRPdfExporter.getFont(JRPdfExporter

2、.java:2117) 开始发现这种自定方法可行,后头又不行了。在研究.但(已经解决,在使用 itex 和iTextAsianCmaps 已经过时,解决方案使用 ttf 文件来进行自定义(ttf 文件可在 c 盘下面去拷贝出来就可以了),使用方法见外面的 网页资料/)注意一:有一点不一样,它是将那个 fonts 文件夹打成 jar 包,而我是将整个文件夹引入的注意二:ttf 文件最好是不要有中文注意三:在字体加载后他会在安装目录下的 JaspersoftiReport-5.6.0ireportfonts 中添加 ttf 文件和更改配置信息,然后在工具-选项 classpath 下面加入这个文件

3、夹所有要重新启动一次。在设置。小结:现在在 ireport 中可以自定义字体,然后在预览和生成 pdf 中可以显示中文,找到字体。下一步就是使用生成的 report1.jasper 文件在 IDE 中来进行项目集成。2、常规支持方案最终解决方案:按照网上说的设置 4 个属性:Font Name: 宋体 (反正是支持中文显示的字体就可以 )Pdf font name: STSong-Light;Pdf embedded:勾上(其实不打钩也可以)pdf enccoding: UniGB-UCS2-H (Chinese Simplified)查看 IReport 工具的输出信息(跟 java 的 s

4、ystem.out.print 出来的信息一个类型,查看的地方也差不多) ,发现有报一个错:. Could not load the following font . .这个是因为没有找到中文的 jar 包,这时如果你去网上辛辛苦苦找到 IText 的中文包的话,你会耗费大量时间,且不一定成功,其实,安装完 IReport 后,它默认就有两个支持中文的 IText 包啦,的目录是: JaspersoftiReport-4.5.1ireportmodulesext 下的 iText-2.1.7.jar 和 iTextAsian.jar九,将那两个包导入到 IReport 的 ClassPath

5、里面(web 项目中直接引入 jar 包) ,点击确定,然后再打开,在 Font 页签上面能够看得到这两个包,就说明成功啦,然后重启IReport,就会发现一切都是那么美好啦,哈哈哈哈!自定义的字体,等待后头研究。二、使用 jasperreports 和 irepoert 生成的.jasper 来实现 pdf 的生成1、字体在项目中的引入首先,选择你在使用 ireport 生成的.jasper 选择的字体(自定义字体),现在需要把这个字体拿出来放在项目中,具体的使用方法.点击:生成文件类型选择.jar 或者.zip名字 fonts.jar 这样将自己自定义且使用了的字体打成 jar 包,放在自

6、己 javaee 使用的项目的lib 中,把报表的 .jasper 也放在项目的响应位置,在程序中调用。2、将自己制作做的静态报表在页面上用 pdf 的形式显示出来.jrxml:是可视化编辑的 xml 文件;.jasper:经编译后生成的类文件,即报表模板文件。然后使用 jasperreport 就可以了:一下是打印在页面用 pdf 显示的 servlet 核心方法。public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException tr

7、y ServletOutputStream servletOutputStream=response.getOutputStream(); InputStream reportStream = getServletConfig().getServletContext() .getResourceAsStream(report1.jasper); JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream,new HashMap(), new JREmptyDataSource(); response.setCo

8、ntentType(application/pdf); servletOutputStream.flush(); servletOutputStream.close(); 3、利用程序将.jrxml 导出为.jasper 文件并用 PDF 显示前面的章节是直接在 Web 项目中使用.jasper 文件,其实在软件项目开发时, .jrxml 文件经常修改,而且.jrxml 还要在项目中进行保留备份,所以较为流行的做法是在项目中使用.jrxml 来生成.jasper 文件,并用 PDF 文件显示出来/获取当时要转为jasper文件的jrxml文件 /D:apache-tomcat-6.0.41-w

9、indows-x64apache-tomcat-6.0.41webappstestJasperreportjrxmlreport1.jrxmlString jrxmlSourcePath=this.getServletContext().getRealPath (/)+ jrxmlreport1.jrxml; System.out.println(jrxmlSourcePath); String jrxmlDestSourcePath = this.getClass().getClassLoader().getResource().getPath().substring(1)+jasperre

10、ports/report1.jasper; /D:/apache-tomcat-6.0.41-windows-x64/apache-tomcat-6.0.41/webapps/testJasperreport/WEB-INF/classes/System.out.println( this.getClass().getClassLoader().getResource().getPath();/此句是在jrxml来生成.jasper文件编译报表,完成对报表的编译工作JasperCompileMpileReportToFile(jrxmlSourcePath,jrxmlDestSourcePat

11、h); InputStream isRef = new FileInputStream(new File(jrxmlDestSourcePath); ServletOutputStream sosRef = response.getOutputStream(); response.setContentType(application/pdf); JasperRunManager.runReportToPdfStream(isRef,sosRef,new HashMap(), new JREmptyDataSource(); sosRef.flush(); sosRef.close(); 小结:

12、在前面我们使用的只是 html 中显示的静态的 pdf,在大多数的情况下,打印的数据来自于一些变量 三、填充报表数据 1、对参数进行填充打印到 pdf 到 html在 JasperReports 工具中传递数据并填充到报表只有两种方式,即使用 Parameters 参数和 JRDataSource 数据源,而 Parameters 参数的使用方式就是从 Servlet 向报表传递参数,而 JRDataSource 数据源可以使用原始数据表中的数据在报表上进行显示 。 这两种方式都可以通过Servlet进行传递。 Static Text: 靜態文字型態的文字類別,一般的整合開發工具或會稱為標籤(

13、Label) ,就是固定不變的字串 Text Field: 文字欄位,為字串型態的文字類型,為合法的 Java 字串運算式,因此字串必須用雙引號括住剛開始使用時經常會搞錯此二種型態,簡單的區分方法是: 在 Static Text 的輸入視窗輸入文字時不用加雙引號( 加了會出現在報表上) Text Field 的文字要加雙引號以符合 Java 語法使用参数设置 default value exception 是使用 java 表达式来设置静态的值得。并且在使用 Text Field 的时候也必须对字体属性进行设置。和 static text 一样的设置。现在只是对一般的参数进行填充,一下通过 j

14、avabean 的方式来对对象属性进行填充。2、对对象内部属性进行填充首先在项目中新建要填充的 JRBeanCollectionDataSource 对象。Userinfo 类然后把 Userinfo.class 的路径配置到 iReport 软件中,将 workplace 中的 classes 包引进来。单击 按钮添加数据源,选择 JavaBean,并且设置选项如图。然后单击选择在这里的 javabean.UserInfo 一定要和你项目中的类所在的路径一样,不然查询不到。然后点击 read attribute 在将选中的加到 Fields 里面去,在左侧的 Field 中就可以看见这些ja

15、vabean 的属性了。然后在 Field 中将属性直接拖到 detial 中进行使用。注意这里使用 Empty datasoource .这个可以删除数据源,然后将生成的 jasper 放放到项目下面:try List listUserinfo = new ArrayList(); for (int i = 0; i 在上面的代码中使用了新的标签,它的作用可以使控件进行分组,并且设置 Stretch Type 为 Relative to Tallest Object,如图 2.62 所示。设置垂直线的属性值为 Relative to Tallest Object 的作用是使垂直线的高度随着本

16、组内最高的控件高度而进行变化。程序运行效果如图 2.63 所示。3.5、Stretch With Overflow这个属性表明当组件内内容超过时候,换行显示,如 texxt field 里面的内容如果这个属性不设置为 true 的话,那么超过的部分是不会显示出来的。3.6 Print Repeated Values 属性在 MySQL 中创建数据表结构及数据内容,userinfo 表中的数据如图 2.64 所示。报表模板的默认设置如图 2.65 所示。默认模板的运行效果如图 2.66 所示。可以发现 password 有 aa 值重复的问题,如果有重复值可以设置为不打印,即改变password 控件的属性设

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号