5

我已按照此链接将字体添加到我的 jasper 报告项目中,但是在尝试构建报告时出现此异常,此异常意味着什么?我找不到有关如何解决它的任何解决方案。请注意,我正在尝试添加 Ubuntu-LI字体

17:26:35-218 -  - raysis.rohani.rg.report.builder.ReportBuilder.show(120) - error in showing the jasper report (called from ReportBuilder)
net.sf.jasperreports.engine.JRRuntimeException: java.awt.FontFormatException: bad table, tag=1196445523
    at net.sf.jasperreports.engine.fonts.SimpleFontFace.<init>(SimpleFontFace.java:104)
    at net.sf.jasperreports.engine.fonts.SimpleFontFace.<init>(SimpleFontFace.java:128)
    at net.sf.jasperreports.engine.fonts.SimpleFontFace.getInstance(SimpleFontFace.java:67)
    at net.sf.jasperreports.engine.fonts.SimpleFontFamily.setNormal(SimpleFontFamily.java:99)
    at net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.parseFontFamily(SimpleFontExtensionHelper.java:261)
    at net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.parseFontFamilies(SimpleFontExtensionHelper.java:232)
    at net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.loadFontFamilies(SimpleFontExtensionHelper.java:193)
    at net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.loadFontFamilies(SimpleFontExtensionHelper.java:162)
    at net.sf.jasperreports.engine.fonts.FontExtensionsRegistry.getExtensions(FontExtensionsRegistry.java:56)
    at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:110)
    at net.sf.jasperreports.engine.DefaultJasperReportsContext.getExtensions(DefaultJasperReportsContext.java:246)
    at net.sf.jasperreports.engine.fonts.FontUtil.getFontInfo(FontUtil.java:185)
    at net.sf.jasperreports.engine.fonts.FontUtil.getAwtFontFromBundles(FontUtil.java:245)
    at net.sf.dynamicreports.design.transformation.StyleResolver.getFont(StyleResolver.java:96)
    at net.sf.dynamicreports.design.transformation.StyleResolver.getFont(StyleResolver.java:71)
    at net.sf.dynamicreports.design.transformation.StyleResolver.getFontHeight(StyleResolver.java:52)
    at net.sf.dynamicreports.design.transformation.TemplateTransform.getTextFieldHeight(TemplateTransform.java:967)
    at net.sf.dynamicreports.design.transformation.ComponentTransform.textField(ComponentTransform.java:332)
    at net.sf.dynamicreports.design.transformation.ComponentTransform.component(ComponentTransform.java:152)
    at net.sf.dynamicreports.design.transformation.ComponentTransform.list(ComponentTransform.java:285)
    at net.sf.dynamicreports.design.transformation.BandTransform.band(BandTransform.java:184)
    at net.sf.dynamicreports.design.transformation.BandTransform.transform(BandTransform.java:74)
    at net.sf.dynamicreports.design.base.DRDesignReport.transform(DRDesignReport.java:135)
    at net.sf.dynamicreports.design.base.DRDesignReport.<init>(DRDesignReport.java:107)
    at net.sf.dynamicreports.design.base.DRDesignReport.<init>(DRDesignReport.java:99)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toJasperReportDesign(JasperReportBuilder.java:261)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.getJasperParameters(JasperReportBuilder.java:288)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toJasperPrint(JasperReportBuilder.java:299)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.show(JasperReportBuilder.java:328)
    at raysis.rohani.rg.report.JasperBuilder.show(JasperBuilder.java:121)
    at raysis.rohani.rg.report.builder.ReportBuilder.show(ReportBuilder.java:118)
    at raysis.rohani.rg.report.test.ReportMaker.main(ReportMaker.java:46)
Caused by: java.awt.FontFormatException: bad table, tag=1196445523
    at sun.font.TrueTypeFont.init(TrueTypeFont.java:547)
    at sun.font.TrueTypeFont.<init>(TrueTypeFont.java:191)
    at sun.font.SunFontManager.createFont2D(SunFontManager.java:2460)
    at java.awt.Font.<init>(Font.java:614)
    at java.awt.Font.createFont0(Font.java:968)
    at java.awt.Font.createFont(Font.java:876)
    at net.sf.jasperreports.engine.fonts.SimpleFontFace.<init>(SimpleFontFace.java:100)
    ... 31 more

任何帮助将不胜感激

4

3 回答 3

9

就我而言,我使用 Maven 3.3.3 来构建我的版本。maven-resource-plugin 过滤资源并在字体文件 (.ttf) 中应用 UTF-8。

所以,我添加了这个配置,它解决了这个问题。

<build>
    <resources>
        <resource>
            <directory>${project.basedir}/src/main/resources</directory>
            <filtering>false</filtering>
            <includes>
                <include>**/jasperreports_extension.properties</include>
                <include>**/tecsofti-fonts.xml</include>
                <include>**/*.ttf</include>
            </includes>
        </resource>
    </resources>
</build>
于 2015-11-23T14:55:16.457 回答
3

我设法通过将字体的相对 URL 更改为绝对 URL 来解决它。但我不知道为什么相对 URL 会导致该问题。

于 2013-12-15T07:03:43.323 回答
0

我将 /fonts/FONT.TTF 替换为 ./fonts/FONT.TTF 并且它可以工作注意:在 fonts.xml 和 resources\jasperreports_extension.properties 中替换

于 2019-05-09T04:46:51.253 回答