PAS配置:在PAS中部署OA应用,使用应用中导出数据生成文档的功能时报错:net.sf.jasperreports.engine.util.JRFontNotFoundException: Font

本文介绍了解决PAS中OA应用因缺少楷体字体而导致的问题。通过在系统指定路径下安装楷体字体,并在应用中进行相应的配置,可以有效避免此类错误。

【问题描述】

在PAS中部署OA应用,使用应用中导出数据生成文档的功能时报错:net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '楷体' is not available to the JVM. 

【问题原因】

应用中某些导出数据生成文档的功能,需要使用`楷体`字体,当前环境操作系统中没有该字体,导致功能报错

【解决方案】

导入相应字体即可,导入方式如下:

在系统的/usr/share/fonts路径下,新建一个目录,例如创建zh_CN目录,把对应的字体传到该目录下

执行如下命令,安装字体:

mkfontscale
mkfontdir
fc-cache -fv

 可以执行命令查看是否安装好字体:

fc-list |grep 楷体

修改应用,在应用WEB-INF/classes目录下创建jasperreports.properties配置文件,添加配置如下:

net.sf.jasperreports.awt.ignore.missing.font=true

【原文链接】

http://doc.primeton.com/pages/viewpage.action?pageId=82154847

net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text: ((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("list") at com.jaspersoft.studio.editor.preview.view.control.ReportController.fillReport(ReportController.java:553) at com.jaspersoft.studio.editor.preview.view.control.ReportController.access$18(ReportController.java:528) at com.jaspersoft.studio.editor.preview.view.control.ReportController$1.run(ReportController.java:446) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) Caused by: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text: ((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("list") at net.sf.jasperreports.engine.fill.JREvaluator.handleEvaluationException(JREvaluator.java:294) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:328) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:673) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:641) at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:1175) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:529) at net.sf.jasperreports.components.table.fill.FillTableSubreport.evaluateSubreport(FillTableSubreport.java:112) at net.sf.jasperreports.components.table.fill.FillTable.evaluate(FillTable.java:136) at net.sf.jasperreports.engine.fill.JRFillComponentElement.evaluate(JRFillComponentElement.java:110) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:383) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:548) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2613) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:836) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:275) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:119) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:622) at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:135) at java.base/java.lang.Thread.run(Unknown Source) Caused by: java.lang.ClassCastException: class net.sf.jasperreports.engine.JREmptyDataSource cannot be cast to class net.sf.jasperreports.engine.data.JsonDataSource (net.sf.jasperreports.engine.JREmptyDataSource and net.sf.jasperreports.engine.data.JsonDataSource are in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @14485747) at 骨灰堂工作量统计表_1756975472229_690370.evaluate(骨灰堂工作量统计表_1756975472229_690370:79) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:313) ... 16 more
最新发布
09-05
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值