报表模板生成软件:iReport 、 润乾、水晶。

一、Jaspersoft iReport Desiginer 5.60 的使用

  1、软件jar包的下载地址与配置

  百度云盘下载链接:https://pan.baidu.com/s/1Ln9ewKMhYuau1bG9EgdUNQ 密码:cspl

  此软件最高仅支持1.7版本的JDK,如果是1.8版本的JDK,需要安装1.7以下的JDK,然后修改配置文件

  配置文件位置 : 安装目录\iReport-5.6.0\etc\ireport.conf,增加以下配置

jdkhome="C:\Program Files\Java\jdk1.7.0_80"

  2、创建模版

如果需要删除不需要的区域,右键选中该区域,然后选择Delete Band

以下三个区域为必须

如需添加文本控件,选择下图中的Static Text

如果控件中有中文,需要添加支持中文的iTextAsain的JAR包,按照下图所示进行配置

指定字体和属性设置,所有使用中文的控件,都必须按照下图所示进行配置.

创建数据源,如果连接Oracle数据库,需要手动指定数据库驱动,配置方式请参考上面配置iTextAsain的JAR包的步骤.

指定SQL语句

从Fields中拖拽需要的数据到模版中的Detail区域

此时可以用鼠标拖动控件到合适的区域,如果需要修改对应的表头,可以直接在Page Header区域进行修改,如下图所示

如果需要添加动态参数,右键单击 Parameter进行添加

修改Parameter的key

修改之后,拖动到合适的区域

至此,模版创建成功

如需预览,点击预览按钮即可

二、 使用Jasper生成PDF

1、导入依赖

 ​​<!-- itext -->
​​<dependency>
  ​​​<groupId>com.lowagie</groupId>
​​​  <artifactId>itext</artifactId>
  ​​​<version>2.1.7</version>
​​</dependency>
​​<dependency>
​​​  <groupId>com.itextpdf</groupId>
  ​​​<artifactId>itext-asian</artifactId>
  ​​​<version>5.2.0</version>
​​</dependency> ​​<!-- groovy -->
​​<dependency>
  ​​​<groupId>org.codehaus.groovy</groupId>
  ​​​<artifactId>groovy-all</artifactId>
​​​  <version>2.2.0</version>
​​</dependency> ​​<!-- jasperreport -->
​​<dependency>
​​​  <groupId>net.sf.jasperreports</groupId>
​​​  <artifactId>jasperreports</artifactId>
​​​  <version>5.2.0</version>
  ​​​<exclusions>
​​​​    <exclusion>
      ​​​​​<groupId>com.lowagie</groupId>
​​​​​      <artifactId>itext</artifactId>
​​​​    </exclusion>
​​​  </exclusions>
​​</dependency>

拷贝iReport设计好的模版到工程中

2、前台代码

增加按钮
{
​​id : 'button-export',
​​ text : '导出PDF',
​​ iconCls : 'icon-undo',
​​ handler : doExportPDF
​}
绑定按钮点击事件
​function doExportPDF() {
​​window.location.href = "../../areaAction_exportPDF.action"
​}

3、java代码

实现Action
 @Autowired
private DataSource dataSource; @Action("areaAction_exportPDF")
public String exportPDF() throws Exception { // 读取 jrxml 文件
String jrxml = ServletActionContext.getServletContext()
.getRealPath("/jasper/area.jrxml");
// 准备需要数据
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("company", "黑马程序员");
// 准备需要数据
JasperReport report = JasperCompileManager.compileReport(jrxml);
JasperPrint jasperPrint = JasperFillManager.fillReport(report,
parameters, dataSource.getConnection()); HttpServletResponse response = ServletActionContext.getResponse();
OutputStream ouputStream = response.getOutputStream();
// 设置相应参数,以附件形式保存PDF
response.setContentType("application/pdf");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition",
"attachment; filename=" + FileDownloadUtils
.encodeDownloadFilename("工作单.pdf", ServletActionContext
.getRequest().getHeader("user-agent")));
// 使用JRPdfExproter导出器导出pdf
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
exporter.exportReport();// 导出
ouputStream.close();// 关闭流 return NONE;
}
4、解决字体无法加载的异常
将下载地址中的iTextAsian.jar部署到Maven本地仓库,命令 :
  mvn install:install-file -DgroupId=com.xxxxx -DartifactId=iTextAsain -Dversion=10.2.0.2.0 -Dpackaging=jar -Dfile=路径
将pom文件中的坐标替换
原坐标
​​<dependency>
  ​​​<groupId>com.itextpdf</groupId>
​​​  <artifactId>itext-asian</artifactId>
​​​  <version>5.2.0</version>
​​</dependency>
新坐标,该坐标请根据自己本地仓库的实际情况进行修改
​​<dependency>
​​​  <groupId>com.alpha</groupId>
​​​  <artifactId>itextasain</artifactId>
​​​  <version>10.2.0.2.0</version>
​​</dependency>

三、效果

1、网页端

2、生成的pdf文件:

iReport(模版) 与Jasper(数据填充)生成pdf文档的更多相关文章

  1. ireport图形化界面生成pdf文档

    一.ireport软件安装 1.下载软件的官网 https://community.jaspersoft.com/project/ireport-designer/releases 2.安装软件   ...

  2. Spring Boot集成JasperReports生成PDF文档

    由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲染生成PDF文档.本人文采欠缺,写作能力 ...

  3. 利用Java动态生成 PDF 文档

    利用Java动态生成 PDF 文档,则需要开源的API.首先我们先想象需求,在企业应用中,客户会提出一些复杂的需求,比如会针对具体的业务,构建比较典型的具备文档性质的内容,一般会导出PDF进行存档.那 ...

  4. 自动把动态的jsp页面(或静态html)生成PDF文档,并且上传至服务器

    置顶2017年11月06日 14:41:04 阅读数:2311 这几天,任务中有一个难点是把一个打印页面自动给生成PDF文档,并且上传至服务器,然而公司框架只有手动上传文档,打印时可以保存为PDF在本 ...

  5. 手把手教你使用 Java 在线生成 pdf 文档

    一.介绍 在实际的业务开发的时候,研发人员往往会碰到很多这样的一些场景,需要提供相关的电子凭证信息给用户,例如网银/支付宝/微信购物支付的电子发票.订单的库存打印单.各种电子签署合同等等,以方便用户查 ...

  6. Aspose.Words操作word生成PDF文档

    Aspose.Words操作word生成PDF文档 using Aspose.Words; using System; using System.Collections.Generic; using ...

  7. 如何从Windows Phone 生成PDF文档

    我需要从我的Windows Phone应用程序生成PDF. 遗憾的是没有标准的免费的PDF生成库在Windows Phone上运行. 我不得不自己生成PDF,通过直接写入到文件格式. 这竟然是真的很容 ...

  8. 使用PHP生成PDF文档

    原文:使用PHP生成PDF文档 实际工作中,我们要使用PHP动态的创建PDF文档,目前有许多开源的PHP创建PDF的类库,今天我给大家来介绍一款优秀的PDF库,它就是TCPDF,TCPDF是一个用于快 ...

  9. DocFX生成PDF文档

    使用DocFX生成PDF文档,将在线文档转换为PDF离线文档. 关于DocFX的简单介绍使用DocFX生成文档 使用docfx 命令 1.下载 https://github.com/dotnet/do ...

随机推荐

  1. 879. Profitable Schemes

    There are G people in a gang, and a list of various crimes they could commit. The i-th crime generat ...

  2. Brainteaser-292. Nim Game

    You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...

  3. Aizu 2249Road Construction 单源最短路变形《挑战程序设计竞赛》模板题

    King Mercer is the king of ACM kingdom. There are one capital and some cities in his kingdom. Amazin ...

  4. Java 反射机制系列

    http://www.cnblogs.com/KingIceMou/category/1034898.html

  5. iOS多线程---NSOperation的常用操作

    1.最大并发数: - (NSInteger)maxConcurrentOperationCount;- (void)setMaxConcurrentOperationCount:(NSInteger) ...

  6. eclipse中导入SVN项目步骤

    1.eclipse中安装SVN插件 在线安装步骤: (1)点击 Help --> Install New Software...(2)在弹出的窗口中点击add按钮,输入Name(任意)和Loca ...

  7. UML入门 之 交互图 -- 时序图 协作图详解

    作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/17927131 动态图概念 : 从静态图中抽取瞬间值的变化描 ...

  8. 漫谈NIO(2)之Java的NIO

    1.前言 上章提到过Java的NIO采取的是多路IO复用模式,其衍生出来的模型就是Reactor模型.多路IO复用有两种方式,一种是select/poll,另一种是epoll.在windows系统上使 ...

  9. Java之IO(五)文件系统

    转载请注明源出处:http://www.cnblogs.com/lighten/p/6992043.html 1.前言 在讲解Java的文件流之前,先来认识一下Java的文件系统的实现.值得一提的是, ...

  10. 搭建hadoop_之 创建3个虚拟机配置好网络

    (创建3个虚拟机,1个作为主服务器,二个作为从节点)   一.安装虚拟机 Windwos:VMware Workstation Pro MAC:VMware Fusion 安装:     ** 创建空 ...