JRProperties被弃用,推荐的替换方式 [英] JRProperties became deprecated, recommended way of replacing
问题描述
JRProperties
类已被注释为已弃用,并由 JRPropertiesUtil
,如文档中所述
The JRProperties
class has been annotated as deprecated and replaced by JRPropertiesUtil
as stated in the documentation
我一直用它来设置以下方式的属性(因为它是一个提供静态方法的类),
I've been using it to set the properties in a following way (since it was a class providing static methods),
JRProperties.setProperty("net.sf.jasperreports.default.font.name", defaultPDFFont);
JRProperties.setProperty("net.sf.jasperreports.awt.ignore.missing.font", "true");
(...)
我认为现在设置属性的一种未经推荐的方法。
Which is I presume an unrecommended way of setting the properties now.
我发现有两种方法符合API文档,即直接使用 JasperReportsContext
:
I've found two ways of doing so in compliance with API documentation, namely by directly using instance of JasperReportsContext
:
JasperReportsContext jasperReportsContext = DefaultJasperReportsContext.getInstance();
jasperReportsContext.setProperty("net.sf.jasperreports.awt.ignore.missing.font", "true");
jasperReportsContext.setProperty("net.sf.jasperreports.default.font.name", defaultPDFFont);
(...)
或传递 JasperReportsContext
实例到 JRPropertiesUtil
:
JasperReportsContext jasperReportsContext = DefaultJasperReportsContext.getInstance();
JRPropertiesUtil jrPropertiesUtil = JRPropertiesUtil.getInstance(jasperReportsContext);
jrPropertiesUtil.setProperty("net.sf.jasperreports.awt.ignore.missing.font", "true");
jrPropertiesUtil.setProperty("net.sf.jasperreports.default.font.name", defaultPDFFont);
(...)
所以我的问题是:
为报告打印机设置属性的推荐方法是什么?
推荐答案
您当前建议的metod没有区别,但是如果您正在寻找设置属性的正常方法。
There is no difference in your current suggest metod, but if you are looking for normal way to set properties.
属性从 .properties
文件和你的 jrxml
文件。
The properties are loaded from .properties
files and your jrxml
file.
这是覆盖结构
-
从
中加载属性default.jasperreports.properties
在发行版中
从 jasperreports.properties
加载/覆盖属性(如果在根包中提供)您的发行
Loads/override properties from jasperreports.properties
if provided in root package of your distribution
如果在jrxml 报告级别中指定,则加载/覆盖属性
Loads/override property if specified in jrxml report level
<jasperReport...>
<property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>
...
</jasperReport>
如果在jrxml 元素级别<中指定,则加载/覆盖属性
Loads/override property if specified in jrxml element level
<reportElement>
<property name="net.sf.jasperreports.export.html.class" value="test"/>
</reportElement>
您还可以设置动态属性在jrxml中使用
You can also set dynamic properties in jrxml using
<propertyExpression name="net.sf.jasperreports.export.xls.sheet.name"><![CDATA[$F{SheetName}]]></propertyExpression>
阅读更多内容以了解如何使用IDE: properties-how-use-additional-properties-build-enhanced-reports
Read more to understand how to use IDE: properties-how-use-additional-properties-build-enhanced-reports
那么你应该把你的财产放在哪里 net.sf.jasperreports.awt.ignore.missing.font = true
?
So where should you put your property net.sf.jasperreports.awt.ignore.missing.font=true
?
您应该不使用这会导致出口不一致,您应该使用字体扩展名,请参阅我的答案使用Jasper报告的JVM无法使用字体
You should not use this it will create export inconsistencies, you should use font-extensions, please see my answer on this Font is not available to the JVM with Jasper Reports
如果您不在乎将其放入 jasperreports.properties
或 jrxml
报告级别
If you don't care put it in the jasperreports.properties
or jrxml
report level
这篇关于JRProperties被弃用,推荐的替换方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!