jasperReport实现动态报表、pdf导出中文异常的问题

场景:使用IDEA进行编码,输出PDF字节流过程中发生异常,代码如下:

JasperPrint jprint = JasperFillManager.fillReport(jreport, param, new JRMapCollectionDataSource(reportBean.getMapList()));
            // 使用viewer进行输出
            response.setContentType("application/pdf");
            response.setHeader("Content-Disposition", "inline;");
            final OutputStream outputStream = response.getOutputStream();
            JasperExportManager.exportReportToPdfStream(jprint, outputStream);
            outputStream.flush();
            outputStream.close();

异常如下:

net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font: 
pdfFontName: STSong-Light
pdfEncoding: UniGB-UCS2-H
isPdfEmbedded : true
	at net.sf.jasperreports.engine.export.JRPdfExporter.getFont(JRPdfExporter.java:2340)
	at net.sf.jasperreports.engine.export.JRPdfExporter.getChunk(JRPdfExporter.java:2123)
	at net.sf.jasperreports.engine.export.JRPdfExporter.getPhrase(JRPdfExporter.java:2092)

net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font: 
pdfFontName: STSong-Light
pdfEncoding: UniGB-UCS2-H
isPdfEmbedded : true

 

很多人看到这个一定很头疼,因为我也翻看了很多的论坛和网站,说的基本都是很麻烦,引入宋体什么的。

以上的方式太繁琐了,请试试我的方法,亲证有效!!!

我使用的jasperreprots版本是6.4.3,iTextAsian版本是3.0;

你在mvnrepository输入iTextAsian会有三个包出现,但是红色框中的包,文字说明就能让人喜出望外。下载它,就是了。

好了,pdf宋体导出的问题解决了。效果如下:

另外最近在尝试做jasperreport的动态报表(sql分组、返回的列名都不确定),弄好之后会提供相关demo的展示。

参考文档:

参考文档-jasperreport 报表开发详解

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值