为了账号安全,请及时绑定邮箱和手机立即绑定

使用Jasper Reports的JVM无法使用Font

/ 猿问

使用Jasper Reports的JVM无法使用Font

JVM
月关宝盒 2019-07-30 15:55:58

使用Jasper Reports的JVM无法使用Font

我正在尝试使用DynamicJasper生成报告,但是我收到以下错误:

net.sf.jasperreports.engine.util.JRFontNotFoundException:  
                                 Font 'Arial' is not available to the JVM.

安装了msttcorefonts,但我猜JVM没有使用它的任何字体。

我正在使用Ubuntu 10.04。

我怎样才能解决这个问题?


查看完整描述

3 回答

?
桃花长相依

我尝试安装mscorefonts,但是软件包已经安装并且是最新的。

sudo apt-get update
sudo apt-get install ttf-mscorefonts-installer

我尝试在文件系统中搜索字体,其中包括:

ls /usr/share/fonts/truetype/msttcorefonts/

这个文件夹只有自述文件,有关如何安装的正确说明。

cat /usr/share/fonts/truetype/msttcorefonts/README

你需要一个互联网连接:

sudo apt-get install --reinstall ttf-mscorefonts-installer

我重新安装ttf-mscorefonts-installer(如上图所示,确保接受EULA!)问题解决了。


查看完整回答
反对 回复 2019-07-30
?
牧羊人nacy

如果JVM无法使用报表模板中使用的字体作为系统字体或来自JR字体扩展名的字体,则JasperReports会引发JRFontNotFoundException。这可以确保避免因字体指标不匹配而导致的所有问题,并且我们会对不一致性发出预警。

Jasper报告试图帮助您进行报告开发,声明它无法正确导出报告,因为它找不到定义的TextFieldStaticText

<font fontName="Arial"/>

是的,您可以通过将net.sf.jasperreports.awt.ignore.missing.font设置为false 来禁用此功能,但您将导致导出不一致

是的,您可以字体安装为JVM系统字体(但是您需要在每个可能生成报告的PC上执行此操作,您仍然可能遇到编码问题)。

正确的方法!

使用字体扩展,如果你想创建自己的(见下面的链接),jasper报告还会分发一个默认的font-extension jar(jasperreports-fonts-x.x.x.jar),它支持fontName DejaVu SansDejaVu Serif以及DejaVu Sans Mono

<font fontName="DejaVu Sans"/>

来自JasperReport终极指南:

我们强烈建议人们只使用从字体扩展派生的字体,因为这是确保在运行时执行报表时应用程序可以使用字体的唯一方法。使用系统字体时,如果部署在可能未安装这些字体的新计算机上,则始终会带来报告无法正常工作的风险

StackOverflow上有关如何在pdf中正确呈现字体的链接

有关如何在pdf中正确呈现字体的清单

使用JasperSoft Studio生成字体扩展

使用iReport生成字体扩展名


查看完整回答
反对 回复 2019-07-30
?
慕码人2483693

我使用IReport来安装字体:

工具 - >选项 - >字体 - >单击安装字体

然后选择字体并单击

- >导出为扩展名并输入名称myfont.jar

将此jar和spring.jar *添加到构建路径中。

*从Jaspersoft \ iReport-3.7.0 \ ireport \ modules \ ext复制spring.jar


查看完整回答
反对 回复 2019-07-30
  • 3 回答
  • 0 关注
  • 962 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信