JasperReports 6.0.3:JRDesignTextField.setFont 和 JasperDesign.getFontsMap 已弃用并删除
JasperReports 6.0.3: JRDesignTextField.setFont and JasperDesign.getFontsMap is deprecated and removed
我正在尝试在 JasperReport 的 JRDesignTextField 对象上设置我在 JasperDesign 的 getFontMap() 中的字体,如下所示:
JRDesignTextField text; // I have this object
JasperDesign jasperDesign; //I have this object from a master jrxml template
text.setFont((JRFont)jasperDesign.getFontsMap().get("ColumnHeadingFont"));
升级到 JasperReports 6.0.3,在 JRDesignTextField 上设置字体并从 JasperDesign 获取 FontMap 被标记为 "deprecated"。
在深入挖掘之后,我做了一些变通方法来调整这段代码,但我不确定它是否正确:
JRDesignTextField text; // I have this object
JasperDesign jasperDesign; //I have this object
text.setFontName("ColumnHeadingFont");
List<JRStyle> stylesList = jasperDesign.getStylesList();
for(JRStyle st : stylesList){
if("ColumnHeadingFont".equals(st.getFontName()))
{
text.setFontSize(st.getFontsize());
break;
}
}
所以问题分为两个:
从 JasperDesign 对象获取 FontMap
在 JRDesignTextField 上设置字体(我将从 FontMap 获取)
这个问题我提出的方法是否正确,有没有更好的方法?
所以我提出的解决方案是可行的...从主模板中获取样式详细信息(字体大小)并将其用于设计新模板的文本字段。代码如下:
JRDesignTextField text; // This text field is from the new jasper report file
JasperDesign jasperDesign; //This is from master template that has all info
text.setFontName("ColumnHeadingFont");
List<JRStyle> stylesList = jasperDesign.getStylesList();
for(JRStyle st : stylesList){
if("ColumnHeadingFont".equals(st.getFontName()))
{
text.setFontSize(st.getFontsize());
break;
}
}
我正在尝试在 JasperReport 的 JRDesignTextField 对象上设置我在 JasperDesign 的 getFontMap() 中的字体,如下所示:
JRDesignTextField text; // I have this object
JasperDesign jasperDesign; //I have this object from a master jrxml template
text.setFont((JRFont)jasperDesign.getFontsMap().get("ColumnHeadingFont"));
升级到 JasperReports 6.0.3,在 JRDesignTextField 上设置字体并从 JasperDesign 获取 FontMap 被标记为 "deprecated"。 在深入挖掘之后,我做了一些变通方法来调整这段代码,但我不确定它是否正确:
JRDesignTextField text; // I have this object
JasperDesign jasperDesign; //I have this object
text.setFontName("ColumnHeadingFont");
List<JRStyle> stylesList = jasperDesign.getStylesList();
for(JRStyle st : stylesList){
if("ColumnHeadingFont".equals(st.getFontName()))
{
text.setFontSize(st.getFontsize());
break;
}
}
所以问题分为两个:
从 JasperDesign 对象获取 FontMap
在 JRDesignTextField 上设置字体(我将从 FontMap 获取)
这个问题我提出的方法是否正确,有没有更好的方法?
所以我提出的解决方案是可行的...从主模板中获取样式详细信息(字体大小)并将其用于设计新模板的文本字段。代码如下:
JRDesignTextField text; // This text field is from the new jasper report file
JasperDesign jasperDesign; //This is from master template that has all info
text.setFontName("ColumnHeadingFont");
List<JRStyle> stylesList = jasperDesign.getStylesList();
for(JRStyle st : stylesList){
if("ColumnHeadingFont".equals(st.getFontName()))
{
text.setFontSize(st.getFontsize());
break;
}
}