1、JSP 页面 添加PDF文件预览窗口

<iframe style="min-height: 700px; min-width: 800px" src='后台Ctrl路径处理方法'></iframe>

2、Ctrl实现

ServletContext servletContext = request.getSession().getServletContext();
ApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(servletContext);//获得需要打印的数据
params.put(Consts.PRT_JR_DATA_SOURCE, getPrintViewData());JasperPrint jasperPrint = fillReport(param, applicationContext);OutputStream os = resp.getOutputStream();
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, os);
exporter.exportReport();
os.flush();

3、生成 JasperPrint

public static JasperPrint fillReport(Map<String, Object> params, ApplicationContext applicationContext) throws JRException {String jasper = (String) params.get(Consts.PRT_JR_JASPER);//获得打印模版路径JasperReport jasperReport = null;if (jasper.endsWith(Consts.PRT_JR_COMPILED)) {//如果 文件是以 .jasper 结尾jasperReport = (JasperReport) JRLoader.loadObjectFromFile(jasper);} else {jasperReport = JasperCompileManager.compileReport(jasper);}JasperPrint jrPrint = null;Object data = params.get(Consts.PRT_JR_DATA_SOURCE);//获得传入模版内的参数if (data instanceof List) {//如果是集合,不需要查数据库 @SuppressWarnings("rawtypes")JRDataSource dataSource = new JRBeanCollectionDataSource((List) data);jrPrint = fillReport(jasperReport, params, dataSource);} else {//需要查数据库DataSource dataSource = applicationContext.getBean(DataSource.class);Connection conn = DataSourceUtils.getConnection(dataSource);try {jrPrint = fillReport(jasperReport, params, conn);} finally {DataSourceUtils.releaseConnection(conn, dataSource);}}return jrPrint;}public static JasperPrint fillReport(JasperReport jasperReport, Map<String, Object> parameters,JRDataSource dataSource) throws JRException {//return JRFiller.fillReport(jasperReport, parameters, dataSource);return JRFiller.fill(DefaultJasperReportsContext.getInstance(), jasperReport, parameters, dataSource);}public static JasperPrint fillReport(JasperReport jasperReport, Map<String, Object> parameters, Connection conn)throws JRException {//return JRFiller.fillReport(jasperReport, parameters, conn);return JRFiller.fill(DefaultJasperReportsContext.getInstance(), jasperReport, parameters, conn);}

JSP PDF打印 随记相关推荐

  1. c++ byte转cbitmap_关于 C++ 打印 PDF 打印及 PDF 转图片、合并

    关于 C++ 打印 PDF 打印及 PDF 转图片.合并 原文: http://www.aqcoder.com/post/42 pdf(Portable Document Format 的简称,意为& ...

  2. ASP.net的PDF打印(水晶报表)[摘]

    如何部署ASP.NET Crystal Report (1) CRRedist2005_x86.msi 報表套件 (必要安裝) 取得方法在安裝有VS2005的機器上 C:\Program Files\ ...

  3. Java实现PDF打印的解决方案

    1.Java Print Service Java Print Service是Java自带的打印框架,所在的包javax.print.PrintService;. 实现PDF打印的代码流程如下 // ...

  4. 分享一个VS写的PDF打印控件

    控件CLSID A04AC669-CB70-4E8B-9CC0-9B73FC153784 功能描述 自己写的一个控件,某人寿公司的需求,可惜最后没用到. 需求如下: 1.给你一个一个PDF文档,让你打 ...

  5. 《SpringBoot2.0 实战》系列-整合FlyingSaucer + thymeleaf 实现模板文件转pdf打印

    前言 最近,接到一个模板打印pdf的任务,后来网上找了很多案例,本文做下记录. 如何开始 添加依赖包 <!-- thymeleaf --> <dependency><gr ...

  6. vue 项目中实现pdf预览 pdf打印 pdf下载

    在Vue项目中实现PDF预览.打印和下载可以通过以下步骤来实现: 安装pdf.js pdf.js是一个JavaScript库,可以用于在Web上渲染PDF文件. 可以使用npm安装pdf.js,命令如 ...

  7. 解决pdf打印预览中遇到特殊字符,导出失败问题

    解决pdf打印预览中遇到特殊字符,导出失败问题 参考文章: (1)解决pdf打印预览中遇到特殊字符,导出失败问题 (2)https://www.cnblogs.com/king-xg/p/697236 ...

  8. JasperReport类进行PDF打印导致内容缺失

    JasperReport进行PDF打印导致内容缺失 1.工作中遇到JasperReport解析jrxml文件,进行PDF打印,导致数据内容缺失部分. 工作中遇到的问题如下: <!--原配置文件如 ...

  9. 页面调用Adobe Reader自带的控件实现pdf打印

    1.业务场景 一般的业务场景里,只需要将pdf文件下载到本地,然后打开直接打印就可以了. 但是,有的场景会考虑到pdf文件的敏感性,需要pdf文件不能被下载,只能打印且只能打印一次,这就需要考虑使用控 ...

  10. 条形码的打印,pdf打印条形码

    条形码的打印效果如下图: 想实现上面的这种打印输出(内容可以自己设定),大概需要三大步. 第一步:选择jar包(其实实现条形码可以有多个方式,这里讲述下我最熟悉的);采用barcode4j这个jar包 ...

最新文章

  1. python打开是什么样的-Python程序的执行过程是什么样的?
  2. 华为交换机linux版本号,Cisco和华为交换机常用配置命令总结
  3. Log4j.properties的简单配置
  4. css对于文字过长加省略号
  5. Kafka集群安装部署、Kafka生产者、Kafka消费者
  6. java前端弹窗的代码_弹出窗口的html的代码是怎么写的?
  7. Java开发规范之常量定义篇
  8. 高效能人士的七个习惯学习总结
  9. 北京大学计算机考研专业课考什么,北大计算机怎样考
  10. 股票分析之融资买入分析
  11. HDU - 6438 Buy and Resell (贪心 + 优先队列)
  12. 数据分析研究思维导图
  13. 云里黑白第五回——联想Y430p系统迁移
  14. c语言双目运算和单目运算符,单目运算符 双目运算符 三目运算符
  15. 初识html5使用jsQR识别二维码
  16. 按键精灵 剑网三帮派钓鱼脚本
  17. js使用广度优先给树形结构添加level
  18. 【Qt】通过QtCreator源码学习Qt(十二):Q_D和Q_Q指针(简称“d指针”)详解
  19. Oracle——删除用户以及用户下数据
  20. sharedpreferences用法,一线互联网架构师设计思想解读开源框架!进阶学习

热门文章

  1. 怎么打开系统服务器,Win10怎么打开系统服务管理器 Win10打开系统服务管理器操作方法...
  2. 罗马数字转换python_罗马数字转整数 python
  3. BeetlSql中的Mapper
  4. 华为freebuds4i降噪方法分享(教程分享)
  5. postman 定时任务
  6. matlab 发音,MATLAB,MATLAB language,音标,读音,翻译,英文例句,英语词典
  7. 手机邮箱服务器设置安全类型,手机邮箱设置
  8. 神州数码交换机enable密码清除
  9. Vscode tab键使用
  10. BAPI_FIXEDASSET_OVRTAKE_CREATE 创建资产并折旧