星空网 > 软件开发 > Java

iReport学习笔记

概述

主要介绍如何根据jasper报表和数据生成pdf文档,中文字体问题的解决方案和日期时间的格式化输出。

iReport版本:5.2.0

生成pdf文档

maven依赖

<dependency>  <groupId>net.sf.jasperreports</groupId>  <artifactId>jasperreports</artifactId>  <version>5.2.0</version></dependency>

完整的依赖树:

[INFO] +- net.sf.jasperreports:jasperreports:jar:5.2.0:compile
[INFO] |  +- commons-beanutils:commons-beanutils:jar:1.8.0:compile
[INFO] |  +- commons-digester:commons-digester:jar:2.1:compile
[INFO] |  +- com.lowagie:itext:jar:2.1.7.js2:compile
[INFO] |  |  +- bouncycastle:bcmail-jdk14:jar:138:compile
[INFO] |  |  +- bouncycastle:bcprov-jdk14:jar:138:compile
[INFO] |  |  \- org.bouncycastle:bctsp-jdk14:jar:1.38:compile
[INFO] |  |     +- org.bouncycastle:bcprov-jdk14:jar:1.38:compile
[INFO] |  |     \- org.bouncycastle:bcmail-jdk14:jar:1.38:compile
[INFO] |  +- jfree:jcommon:jar:1.0.15:compile
[INFO] |  +- jfree:jfreechart:jar:1.0.12:compile
[INFO] |  +- [INFO] |  +- eclipse:jdtcore:jar:3.1.0:compile
[INFO] |  +- org.codehaus.castor:castor:jar:1.2:compile
[INFO] |  +- com.faster[INFO] |  +- com.faster[INFO] |  \- com.faster[INFO] \- sinobest:font-song:jar:1.0:compile

其中,font-song jar是自制的字体jar包,下载地址:http://pan.baidu.com/s/1NzMkm。

基于sql的数据

1. 配置数据源

iReport学习笔记

2. 配置SQL

iReport学习笔记 

每一个结果字段作为一个Field。

3. 在程序中获取文档内容

public void test() throws JRException, IOException, SQLException {  InputStream is = Main.class.getClassLoader().getResourceAsStream("reports/XZFYSQS-query.jasper");  Map<String, Object> parameters = new HashMap<String, Object>();  parameters.put("SQD_SYSID", "4028ca9850d19ccb0150d19cd1ae0000");    Connection conn = ...;  byte[] datas = JasperRunManager.runReportToPdf(is, parameters, conn);  conn.close();}

基于JavaBean的数据

1. 新建JavaBean

package cn.sinobest.jzpt.fzywgz.reports.pojo;public class XZFYSQS_RY {  private java.lang.String SQR;  private java.lang.String XB;  private java.sql.Timestamp CSNY;  ......}

2. 在iReport中添加编译路径

iReport学习笔记

3. 在iReport中加入Field

iReport学习笔记

4. 在程序中获取文档内容

public void test() throws JRException, IOException {  InputStream is = Main.class.getClassLoader()      .getResourceAsStream(reports/XZFYSQS-javabean.jasper);  List<XZFYSQS_RY> ryList = new ArrayList<XZFYSQS_RY>();  ryList.add(...);  JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(      ryList);  byte[] datas = JasperRunManager.runReportToPdf(is, null, dataSource);  ...}

中文字体解决方案

在编程时根据模板生成pdf内容时,可能出现中文打印不出来的问题;解决方案如下:

  1. 加入字体jar包:font-song
    http://pan.baidu.com/s/1NzMkm
  2. 中文字体,使用宋体、仿宋、方正小标宋简体
  3. 设置中文组件的属性
    iReport学习笔记
    simsun.ttf来自于font-song.jar
  4. 纠正模板名称
    我曾以XZFYSQS_RY.jr以XZFYSQS-RY.jr以XZFYSQS_01.jr

日期时间格式化输出

选中TextField - 右键 - Field pattern

iReport学习笔记

对于日期类型,MM则始终显示2位月份,M则根据需要显示1或2位;其他域类推。




原标题:iReport学习笔记

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

独立站善用 TikTok Pixel 插件,全面洞察出海广告成效:https://www.goluckyvip.com/news/4861.html
Lazada运营泰国15家本土店 日均销售额达8万!:https://www.goluckyvip.com/news/4862.html
紧急消息丨中欧(中亚)交通咽喉惊现新冠,中欧班列、卡航跨境物流或将受阻:https://www.goluckyvip.com/news/4863.html
Lazada全效宝投放思路详解:https://www.goluckyvip.com/news/4864.html
Lazada和Shopee哪个好做点?推荐哪个更容易出单?:https://www.goluckyvip.com/news/4865.html
瞬移达国际物流:https://www.goluckyvip.com/news/4866.html
怪物在游轮上复活的电影 怪物在游轮上复活的电影叫什么:https://www.vstour.cn/a/411230.html
在线旅游如何选择更优惠的旅游产品?:https://www.vstour.cn/a/411231.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流