JasperReports 默认字体

5
我有一个由服务器生成的JasperReport模板,其中包含一个带有样式的文本框(RTF)。该字段的内容由用户生成,因此可能包含客户端PC上安装的所有字体(称为字体X)。如果我现在在服务器上生成报告,则没有字体X,因此我想将所有未知字体替换为字体Y。
但是,我收到的所有内容都是错误,指出找不到字体。一般情况下关闭字体检查的功能(net.sf.jasperreports.awt.ignore.missing.font)并不理想,因为我想要检查jrxml的字体。
是否有一种方法可以设置默认字体(而无需修改Jasper Source)? (我已经在JRStyledText或JRTextUtil中找到了一些要点。)
1个回答

7
你可以尝试使用 net.sf.jasperreports.default.font.name 属性。
或者你可以使用 默认样式
<style name="Base" isDefault="true" ...>

要了解更多详情,请阅读此文章,其中包括“默认字体和继承”章节。

更新:

JasperReports Ultimate Guide中的引用:

我们强烈建议在报告中仅使用提供的字体扩展,这是确保运行时应用程序可以访问字体的唯一方法。使用系统字体总是存在风险,即在没有安装这些字体的机器上部署报告时可能无法正常工作。


是的,我已经设置了这个属性,但我仍然需要禁用 ignore.missing.font...有没有办法只在特定字段上忽略缺失的字体? - itshorty
@itshorty,你有什么问题吗?我以为你的问题是:“有没有一种方法可以设置默认字体”... - Alex K
是的,但保持ignore.missing.font启用... 只有一个字段没有始终可用的字体,因此我想仅为此字段关闭字体检查。 - itshorty
那么这个元素的样式设置呢? - Alex K
如果用户使用了未知的字体,那么我会收到一个JRFontNotFoundException异常。但是我希望能够使用所有已知的字体。 - itshorty
好的。你有一种字体在所有用户PC和服务器上都100%安装的吗? - Alex K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接