博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iReport学习笔记
阅读量:5160 次
发布时间:2019-06-13

本文共 2894 字,大约阅读时间需要 9 分钟。

概述

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

iReport版本:5.2.0

生成pdf文档

maven依赖

net.sf.jasperreports
jasperreports
5.2.0

完整的依赖树:

[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] |  +- xml-apis:xml-apis:jar:1.3.02:compile
[INFO] |  +- eclipse:jdtcore:jar:3.1.0:compile
[INFO] |  +- org.codehaus.castor:castor:jar:1.2:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-core:jar:2.0.5:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.0.5:compile
[INFO] |  \- com.fasterxml.jackson.core:jackson-annotations:jar:2.0.5:compile
[INFO] \- sinobest:font-song:jar:1.0:compile

其中,font-song jar是自制的字体jar包,下载地址:。

基于sql的数据

1. 配置数据源

2. 配置SQL

 

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

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

public void test() throws JRException, IOException, SQLException {    InputStream is = Main.class.getClassLoader().getResourceAsStream("reports/XZFYSQS-query.jasper");    Map
parameters = new HashMap
(); 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中添加编译路径

3. 在iReport中加入Field

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

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

中文字体解决方案

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

  1. 加入字体jar包:font-song
  2. 中文字体,使用宋体、仿宋、方正小标宋简体
  3. 设置中文组件的属性
    simsun.ttf来自于font-song.jar
  4. 纠正模板名称
    我曾以XZFYSQS_RY.jrxml命名,编译之后得XZFYSQS_RY.jasper,打印不出中文
    以XZFYSQS-RY.jrxml命名,编译之后得XZFYSQS-RY.jasper,可以打印中文
    以XZFYSQS_01.jrxml命名,编译之后得XZFYSQS_01.jasper,可以打印中文

日期时间格式化输出

选中TextField - 右键 - Field pattern

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

转载于:https://www.cnblogs.com/ywjy/p/5048084.html

你可能感兴趣的文章
HDU 1260
查看>>
I-team 博客的 gitlab-runner 持续集成实践
查看>>
数据的双向绑定 Angular JS之开端篇
查看>>
JavaScript定时器的开启关闭
查看>>
L1-044 稳赢
查看>>
codeforces 1076E Vasya and a Tree 【dfs+树状数组】
查看>>
class 10 文件和异常
查看>>
HADOOP+ZOOKEEPER集群安装
查看>>
ubuntu 清理垃圾
查看>>
android 表格布局(类似于html)
查看>>
DDD:Command模式的好处
查看>>
使用base64 对图像进行 转换的小程序。附上对视频进行截图的功能程序。
查看>>
io的常用操作
查看>>
算法入门经典-第七章 例题7-1 除法
查看>>
PCB板查短路点的一种技巧(转帖)
查看>>
Asp.Net 用户验证(自定义IPrincipal和IIdentity)
查看>>
常用的正则表达式
查看>>
华为EC169在MAC 10.9.6下的安装方法
查看>>
easy_install和Pip
查看>>
Mysql ==》 文件夹(库)
查看>>