【问题标题】:JasperReports 6.0.3: JRDesignTextField.setFont and JasperDesign.getFontsMap is deprecated and removedJasperReports 6.0.3:JRDesignTextField.setFont 和 JasperDesign.getFontsMap 已弃用并删除
【发布时间】:2016-07-03 06:44:15
【问题描述】:

我正在尝试在 JasperDesign 的 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 获得)

我为这个问题提出的方法是否正确,是否有更好的方法?

【问题讨论】:

    标签: java jasper-reports deprecated


    【解决方案1】:

    所以我提出的解决方案是可行的......从主模板中获取样式细节(字体大小)并将其用于设计新模板的文本字段。代码如下:

    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;
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-10-26
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      • 2020-09-05
      • 2013-12-14
      相关资源
      最近更新 更多