JRProperties被弃用,推荐的替换方式 [英] JRProperties became deprecated, recommended way of replacing

查看:215
本文介绍了JRProperties被弃用,推荐的替换方式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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.

这是覆盖结构


  1. 中加载属性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屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆