1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > PDF报表生成方式:iText与JasperReport概述

PDF报表生成方式:iText与JasperReport概述

时间:2021-10-12 17:15:22

相关推荐

PDF报表生成方式:iText与JasperReport概述

1.iText

iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。iText的安装非常方便,下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了。如果是maven工程就只是需要导入其maven坐标就可以了,坐标如下:

<dependency><groupId>com.lowagie</groupId><artifactId>itext</artifactId><version>2.1.7</version></dependency>

测试代码:

import com.lowagie.text.Document;import com.lowagie.text.DocumentException;import com.lowagie.text.Paragraph;import com.lowagie.text.pdf.PdfWriter;import java.io.FileNotFoundException;import java.io.FileOutputStream;public class ItextTest {public static void main(String[] args) {try {Document document = new Document();PdfWriter.getInstance(document, new FileOutputStream("D:\\test.pdf"));document.open();document.add(new Paragraph("hello itext"));//输入一个段落document.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (DocumentException e) {e.printStackTrace();}}}

结果:

2.JasperReports

底层是基于IText,它是对其进行了封装,简化了过程

JasperReports是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者XML格式。该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,Web应用程序中生成动态内容。一般情况下,JasperReports会结合Jaspersoft Studio(模板设计器)使用导出PDF报表。maven坐标:

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

测试代码

第一步:

创建maven过程,导入JasperReports的maven坐标

<dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports</artifactId><version>6.8.0</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>

第二步:

将提前准备好的jrxml文件复制到maven工程中(后面会详细讲解如何创建jrxml文件),这个文件是一个模板文件,就和之前的Freemarker差不多

jrxml操作:

第三步:

编写单元测试,输出PDF报表

@Testpublic void testJasperReports()throws Exception{String jrxmlPath = "模板文件的路径(demo.jrxml)";String jasperPath = "编译后的文件的路径(demo.jasper)";//编译模板pileReportToFile(jrxmlPath,jasperPath);//构造数据,这个与模板文件里面的数据是对应的Map paramters = new HashMap();paramters.put("reportDate","-10-10");paramters.put("company","itcast");List<Map> list = new ArrayList();Map map1 = new HashMap();map1.put("name","xiaoming");map1.put("address","beijing");map1.put("email","xiaoming@");Map map2 = new HashMap();map2.put("name","xiaoli");map2.put("address","nanjing");map2.put("email","xiaoli@");list.add(map1);list.add(map2);//填充数据JasperPrint jasperPrint = JasperFillManager.fillReport(jasperPath, paramters, new JRBeanCollectionDataSource(list));//输出文件String pdfPath = "D:\\test.pdf";JasperExportManager.exportReportToPdfFile(jasperPrint,pdfPath);}

结果

这个会在上面的编译后的文件的路径(demo.jasper)这个地址下面生成一个jasper文件,然后会在String pdfPath = “D:\test.pdf”;这个位置生成一个pdf文件

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。