ireport web导出pdf
来源:互联网 发布:软件项目成果报告 编辑:程序博客网 时间:2024/05/30 23:03
web导出pdf(可以在本地生成)
package com.sinosig.sl.slcc.base.utils;import java.io.OutputStream;import java.util.Arrays;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletResponse;import net.sf.jasperreports.engine.JRDataSource;import net.sf.jasperreports.engine.JasperCompileManager;import net.sf.jasperreports.engine.JasperExportManager;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.JasperPrint;import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;public class PDFUtil {private static String jrxmlSourcePath = "C:/Users/Administrator.MICROSOFT/Desktop/report3.jrxml";private static String jasperFilePath = "C:/Users/Administrator.MICROSOFT/Desktop/report1.jasper";public static void exportPDF(HttpServletResponse response,Map<String,Object> parameterMap ,List<Object> list) throws Exception{//String classpath=PDFUtil.class.getResource("/").toString().substring(6);//String jrxmlSourcePath=classpath+"report3.jrxml";//String jasperFilePath=classpath+"report3.jasper"; // 将jrxml编译生成a.jasperJasperCompileManager.compileReportToFile(jrxmlSourcePath, jasperFilePath);//配置入参List<Object> listInfo = Arrays.asList(list.toArray());JRDataSource datasource= new JRBeanCollectionDataSource(listInfo);//重点就是这个方法三个参数//第一个jasperFilePath是jasper文件的路径//第二个参数parameterMap是一个map 这个map主要是放的对象里面的其他对象比如list等//第三个参数主要是最外层的对象的list的转换成的JRDataSource 下面进行详细讲解JasperPrint jasperPrint = JasperFillManager.fillReport(jasperFilePath, parameterMap,datasource);//ByteArrayOutputStream baos = new ByteArrayOutputStream();OutputStream os=response.getOutputStream();
// 如果是web导出的话这段代码直接复制 如果是pdf本地生成的话就把response 的os换成baosJasperExportManager.exportReportToPdfStream(jasperPrint,os);//byte[] bytes = baos.toByteArray();//// 4.确定写出文件的位置//File file = new File("C:/Users/Administrator.MICROSOFT/Desktop/report1.pdf");//FileOutputStream fos = new FileOutputStream(file);//fos.write(bytes);//fos.flush();//fos.close();//System.out.println("----------------over--------------");}}
这个东西重点就是三个参数和irepor生成模板的对应关系
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperFilePath, parameterMap,datasource);上面这个方法是要参数的入口 主要说后面两个参数
在说参数之前我先说一个javabean
学生类
public class Student {private String stuNo;private String stuSex;private String stuName;private String stuAge;}班级类
public class StuClass {private String ClsName;private String ClsNo;private List<Student> students;}
班级类中有个学生的list
以上只是一个例子
我们把班级类当做最外层 那么之前说的第三个参数datasource 就是这样写
List<Object> list =new ArrayList<Object>();StuClass stuclass=new StuClass();/***各种set值*/list.add(stuclass);把list传到pdfUtils中
然后看代码可以知道
List<Object> listInfo = Arrays.asList(list.toArray());JRDataSource datasource= new JRBeanCollectionDataSource(listInfo);至此datasource就是第三个参数 这个第三个参数是ireport中的detail块的循环
假设 ireport中detail1放了一个参数clsName 而第三个参数的list里面有两个对象那么detail1会循环两次
下面说第二个参数
map里面放的students的list代码如下
List<Student> list =new ArrayList<Student>();Student student=new Student();list.add(student);JRDataSource data= new JRBeanCollectionDataSource(list);parameterMap.put("stuInfo", data);将这个参数传进pdfUtils 这就是第二个参数 这个参数对应ireport中的list组件 list组件会根据他来循环。
最后说ireport中的操作
ireport的每个list都要配置数据源 就以上要获取班级类中的学生list的话需要这样设置数据源
sub dataset 是将student这个javabean设置为javabbean的
get(“stuInfo”)就是map中的put的值
主要想讲的是 外层对象放到第三个参数 通过ireport的detail来循环
外层对象中的list或者对象 放到第二个参数 通过ireport中的list组件来循环 并且他的list需要设置数据源 以javabean设置为数据源
注意:
ireport如果用javabean作为数据源 需要将实体类的calss文件添加到ireport里面
如果windows可以但是linux出现了换行吃字的问题 最终的我的解决办法是安装字体在linux上 当时搞了三天
对于导出的pdf要有水印 的话 有个bind叫background 里面放上图片就好了。
但是一般不写绝对路径 写相对路径 方法是把图片的 image expression属性写成java传来的值
1.首先在ireport中添加一个Paramater 我这里取名为logoPath如图
2.将image的image expression属性写成$P{logoPath}
3.通过代码传进参数
阅读全文
0 0
- ireport web导出pdf
- ireport导出中文pdf
- Ireport 导出pdf(一)
- ireport导出pdf(二)
- ireport导出pdf(三)
- Ireport动态导出pdf,xml
- ireport导出PDF中文处理方法
- ireport Excel/pdf导出去掉分页显示
- ireport报表导出 pdf xls doc
- Ireport导出Pdf中文不显示
- iReport 5.6.0 导出PDF 黑体显示
- ireport设计导出模板,Jasperreport导出PDF、HTML、Excel
- Ireport 报表导出 Poi + ireport 导出pdf, word ,excel ,html 格式
- ireport导出pdf报表,进行的相关设置。
- ireport导出excel,html.pdf等格式完整实例
- ireport 4.1.1 导出PDF 引入外部中文字体
- ireport导出各种格式(pdf,excel,word,html,print)
- ireport导出各种格式(pdf,excel,word,html,print)
- 学习总结3
- 代码优化概要
- 关于利用SpringMVC下载方法在IE11中无法正常下载文件的问题
- 61463
- Elasticsearch Reference 5.5 中文翻译7
- ireport web导出pdf
- python基础
- Spring的注入方式Setter和构造器
- Java虚拟机加载类
- 六个创建型模式4: 单例模式-Singleton Pattern【学习难度:★☆☆☆☆,使用频率:★★★★☆】
- Git教程,从基本原理理解掌握常用命令
- php文件引用头部有空白行()
- Java多线程的学习
- BP神经网络算法