我试图在JasperReign的getFontMap()中使用我在JasperReport的JRDesignTextField对象上设置字体,如下所示:
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被标记为"弃用"。 在进行了一些挖掘之后,我做了一些解决方法来调整这个我不确定是正确的代码:
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获取)
我提出的解决这个问题的方法是否正确,是否有更好的方法可以做到这一点?
答案 0 :(得分:0)
所以我提出的解决方案是可行的...从主模板获取样式细节(字体大小)并在设计新模板的textField时使用它。代码如下:
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;
}
}