JasperReport 导出PDF不能加载。

项目JasperReport模板导出PDF,最近在浏览器不能打开了。
提示【未能加载PDF文档】,但不是JasperReport导出的PDF却正常。

一、调查:

1、调查发现,通过代码生成的PDF版本为1.4
而能正常显示的PDF版本为1.7。

2、新问题:发现直接打开pdf文件能显示,但是使用项目中还是有问题。
项目中加载PDF是通过controller读取文件后,用ResponseEntity返回,
修改为reponse直接返回。

二、对策:

1、代码中生成PDF时,指定PDF版本,如下:

String outputFile = "c://jasper//test.pdf";
String templateFile = "c://jasper//template.jrxml"
Map<String, Object> params = new HashMap<Sring, Object>();
List<Object> dataList = new ArrayList<Object>();// 加载模板
JasperDesign design = JRXmlLoader.load(templateFile);
JasperReport report = JasperCompileManager.compileReport(design);// 填充数据
JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(dataList);
JasperPrint print = JasperFillManager.fillReport(report, params, dataSource);// 设置样式,支持中文
JRStyle style = new JRBaseStyle();
style.setPdfEmbedded(Boolean.TRUE);
style.setPdfFontName("STSong-Light");
style.setPdfEncoding("UniGB-UCS2-H");
print.setDefaultStyle(style);// 构建PDF导出对象
JRPdfExporter exporter = new JRPdfExporter();
SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
configuration.setPdfVersion(PdfVersionEnum.VERSION_1_7); // 指定pdf版本
exporter.setConfiguration(configuration);// 指定输入对象
ExporterInput exporterInput = new SimpleExporterInput(print);
exporter.setExporterInput(exporterInput);// 指定导出对象
OutputStreamExporterOutput exporterOutput = new SimpleOutputStreamExporterOutput(outputFile);
exporter.setExporterOutput(exporterOutput);// 导出PDF
exporter.exportReport();

2、修改返回pdf流的方式。

response.setContentType("application/pdf");File file = new File("c://jasper//test.pdf");
FileInputStream in = new FileInputStream(file);
OutputStream out = response.getOutputStream();
byte[] b = new byte[512];
while ((in.read(b)) != -1) {out.write(b);
}
out.flush();
in.close();
out.close();

注意:一定不要加response.setHeader(“content-disposition”,“attachment;filename=”+filename);

JasperReport 导出PDF不能加载相关推荐

  1. uniapp 使用pdf.js 加载本地pdf文件报错问题

    最近有在做一个移动端的应用,应用里涉及到大量的js游戏开发,使用Android原生做不太合适,就选择了uniapp,其中有一个功能是读取本地的pdf文件并展示.在网上查了点资料都是用pdf.js来开发 ...

  2. PDF.js 实现pdf分页加载的前端优化(实现按需加载)-前端的demo也已经上传

    描述 pdf.js实现了分片加载,但是在首次加载时自动加载了全部的pdf分片,导致打开了几个超过1g的pdf时,浏览器报出内存不足的提示 解决方案 实现pdf.js的按需加载,只需要修改属性disab ...

  3. 咖啡汪日志——JAVA导出pdf文件加水印 文字+图片、文字

    咖啡汪日志--JAVA导出pdf文件加水印 文字和图片.文字 hello,又大家见面了! 作为一只不是在戏精就是在戏精路上的哈士奇,今天要展示给大家的就是如何快捷地给pdf文件增加各种水印.嗷呜呜,前 ...

  4. Jasperreport导出pdf内容展示不完全处理

    [+] 场景 测试过程发现,尽管已经设置如下配置: Position Type : Fix Relative to Top Stretch Type:Relative to  Band Height ...

  5. java pdf无法加载_java - 试图使用iText7合并来合并pdf,但是当我打开最终的合并pdf时,它说无法加载pdf文档 - SO中文参考 - www.soinside.com...

    试图使用iText7合并来合并pdf,但是当我打开最终的合并pdf时,它说无法加载pdf文档 问题描述 投票:0回答:1 我正在使用itext7 PdfWriter创建两个ByteArrayOutpu ...

  6. pb 如何导出csv_backtrader如何加载股票因子数据?以换手率、市盈率为例进行回测【附Python代码】

    1引言 关于backtrader,公众号已连续发布了三篇推文:<[手把手教你]入门量化回测最强神器backtrader(一)>.<[手把手教你]入门量化回测最强神器backtrade ...

  7. next.js 无法导出及导出图片无法加载等问题

    那是因为导入  next/images 问题 建议直接在文件里使用 img 标签 和 图片连接 next.config.js 设置如下: module.exports = {reactStrictMo ...

  8. Android 在线PDF文件加载

    Android加载PDF文件,webview没有直接提供相关的API方法,不像IOS webview可以直接加载PDF文件,不管本地文件或者在线文件,而Android 的webview却不能加载,那么 ...

  9. Java后台+PDF.js 实现pdf分页加载的后端实现

    前言: 主要解决大体积pdf在线浏览加载缓慢,影响用户体验的问题 技术栈为:SpringBoot.Vue.pdfjs 主要核心思路:前端请求时请求头附带请求范围range及读取大小,后端根据请求头返回 ...

  10. java jasperReports导出PDF字体加粗失效,中文显示不出来

    最近搞了一个项目,需要生成投保电子凭证的pdf文件,之前在项目也用了这个组件,只是很多年前别人开发的,我只是项目负责人而已,想起以前的项目就找了ireport这个做为生成pdf的工具.一开始捣鼓了好久 ...

最新文章

  1. 清理SQL多余登录信息
  2. Oracle 定时器
  3. windows在命令行中查看当前路径
  4. android 之使用多线程中的AsyncTask实现下载网络图片资源
  5. php怎么返回json格式的数据
  6. luogu3093 牛奶调度
  7. vue、bus 使用遇到的坑,组件之间无法传值;vue、bus 第一次获取不到值,后面再点击重复执行
  8. 雪城大学信息安全讲义 二、Unix 安全概览
  9. TensorFlow图像数据预处理
  10. std::map,不同的插入方式,会导致崩溃
  11. 01 Python基础
  12. 用PS设计曲线四分环
  13. QML类型:Emitter、TrailEmitter
  14. 用Photoshop制作一张“油画”
  15. VPP协议栈学习一:snd_wnd
  16. 旧弹簧(Old spring )
  17. oracle 落落是谁,落落是老虎妖精吗?落落的父母是什么身份?
  18. 最美的时光在飞逝,为什么还在努力的路上蹒跚?
  19. 名帖44 北魏 楷书《元苌墓志》
  20. GitLab提交或拉取代码问题

热门文章

  1. 给控件做数字签名之二:生成证书文件
  2. amp;#9733;一名“标题党”自我修炼的10…
  3. oracle patch下载地址
  4. javascript 自建立对象
  5. 9.PHP核心技术与最佳实践 --- memcache
  6. 1.Linux 程序设计入门
  7. 6. Controller
  8. 4. PDO 事务处理
  9. 94. autoload(2)
  10. 55. mysqli 扩展库(2)