当前位置: 首页 > 知识库问答 >
问题:

JasperSoft Studio初始化字体时出现问题

谭裕
2023-03-14

总之,我在Jaspersoft Studio中编辑我的Jasper报告时遇到了问题,显示了以下异常。

Could not initialize class
com.jaspersoft.studio.preferences.fonts.utils.FontUtils

为了导致错误,我所要做的就是尝试编辑任何文本字段或静态文本。下面是我的报告和项目fonts.jar文件中的fonts.xml。我尝试使用的字体是Roboto,包含在JasperSoft的首选项部分,我必须包含al ttf。

这发生在项目的所有报告中,这里是一个示例。

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.12.2.final using JasperReports Library version 6.12.2-75c5e90a222ab406e416cbf590a5397028a52de3  -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Charges" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="98e6c42b-ce3b-4d93-b73d-e17368a5f94a">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="DataAdapterDummyJSON.xml"/>
    <queryString language="jsonql">
        <![CDATA[data.charges]]>
    </queryString>
    <field name="chargeName" class="java.lang.String">
        <property name="net.sf.jasperreports.jsonql.field.expression" value="chargeName"/>
        <property name="net.sf.jasperreports.json.field.expression" value="chargeName"/>
        <fieldDescription><![CDATA[chargeName]]></fieldDescription>
    </field>
    <field name="chargeAmount" class="java.math.BigDecimal">
        <property name="net.sf.jasperreports.jsonql.field.expression" value="chargeAmount"/>
        <property name="net.sf.jasperreports.json.field.expression" value="chargeAmount"/>
        <fieldDescription><![CDATA[chargeAmount]]></fieldDescription>
    </field>
    <background>
        <band splitType="Stretch"/>
    </background>
    <detail>
        <band height="24">
            <textField>
                <reportElement x="70" y="0" width="174" height="20" uuid="0b113029-609b-42fc-8269-384d8af6921d">
                    <property name="com.jaspersoft.studio.unit.width" value="px"/>
                    <property name="com.jaspersoft.studio.unit.height" value="px"/>
                </reportElement>
                <textElement textAlignment="Right" verticalAlignment="Middle">
                    <font fontName="Roboto" size="15"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{chargeName}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="310" y="2" width="132" height="20" uuid="78b92d3d-4a53-4976-a8e8-e0dab507ce6a">
                    <property name="com.jaspersoft.studio.unit.height" value="px"/>
                </reportElement>
                <textElement textAlignment="Right" verticalAlignment="Middle">
                    <font fontName="Roboto" size="15" isBold="true"/>
                </textElement>
                <textFieldExpression><![CDATA["$"+ new DecimalFormat("0.00").format($F{chargeAmount})]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

项目的fonts.jar

<?xml version="1.0" encoding="UTF-8"?>

<fontFamilies>

    <fontFamily name="DejaVu Sans">
        <normal>net/sf/jasperreports/fonts/dejavu/DejaVuSans.ttf</normal>
        <bold>net/sf/jasperreports/fonts/dejavu/DejaVuSans-Bold.ttf</bold>
        <italic>net/sf/jasperreports/fonts/dejavu/DejaVuSans-Oblique.ttf</italic>
        <boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSans-BoldOblique.ttf</boldItalic>
        <pdfEncoding>Identity-H</pdfEncoding>
        <pdfEmbedded>true</pdfEmbedded>
        <exportFonts>
            <export key="net.sf.jasperreports.html">'DejaVu Sans', Arial, Helvetica, sans-serif</export>
        </exportFonts>
        <!--
        <locales>
            <locale>en_US</locale>
            <locale>de_DE</locale>
        </locales>
        -->
    </fontFamily>

    <fontFamily name="DejaVu Serif">
        <normal>net/sf/jasperreports/fonts/dejavu/DejaVuSerif.ttf</normal>
        <bold>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-Bold.ttf</bold>
        <italic>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-Italic.ttf</italic>
        <boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-BoldItalic.ttf</boldItalic>
        <pdfEncoding>Identity-H</pdfEncoding>
        <pdfEmbedded>true</pdfEmbedded>
        <exportFonts>
            <export key="net.sf.jasperreports.html">'DejaVu Serif', 'Times New Roman', Times, serif</export>
        </exportFonts>
    </fontFamily>

    <fontFamily name="DejaVu Sans Mono">
        <normal>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono.ttf</normal>
        <bold>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono-Bold.ttf</bold>
        <italic>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono-Oblique.ttf</italic>
        <boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf</boldItalic>
        <pdfEncoding>Identity-H</pdfEncoding>
        <pdfEmbedded>true</pdfEmbedded>
        <exportFonts>
            <export key="net.sf.jasperreports.html">'DejaVu Sans Mono', 'Courier New', Courier, monospace</export>
        </exportFonts>
    </fontFamily>

    <!--
        Mapping Java logical fonts, for the sake of HTML export only.
    -->

    <fontFamily name="SansSerif">
        <exportFonts>
            <export key="net.sf.jasperreports.html">'DejaVu Sans', Arial, Helvetica, sans-serif</export>
        </exportFonts>
    </fontFamily>
    <fontFamily name="Serif">
        <exportFonts>
            <export key="net.sf.jasperreports.html">'DejaVu Serif', 'Times New Roman', Times, serif</export>
        </exportFonts>
    </fontFamily>
    <fontFamily name="Monospaced">
        <exportFonts>
            <export key="net.sf.jasperreports.html">'DejaVu Sans Mono', 'Courier New', Courier, monospace</export>
        </exportFonts>
    </fontFamily>

</fontFamilies>

共有1个答案

仉刚洁
2023-03-14

由于字体不可用而发生错误。工作室给我同样的错误。问题解决了。在处理 ireport 5.0 或 ireport 5.6 时,我从未得到过这个,可能是因为我正在使用的 java 版本或已经配置了字体路径的某些版本。碧玉工作室窗户 -

或者你也可以试试下面的选项,有些适合你。

1. Switched from Open JDK to Sun JDK
2. Installed MS Core Fonts
3. Packaged JasperReport font library jar with the application

出现问题的主要原因是字体

 类似资料:
  • 问题内容: 我正在尝试使用从Web服务接收的以下字符串初始化JSONObject: 它似乎是有效的json(它在jsonlint.com中进行了验证),但是使用它初始化JSONObject时,我得到了: 有人可以帮忙吗? 谢谢 问题答案: 似乎您正在尝试从带有额外引号的String实例化它。您需要删除包装引号(我不使用您的字符串,而是给出一个示例使其更清楚): 还行吧: 这不是:

  • 我安装了Oracle Sql developer,但没有得到启动页。遇到JavaFx错误。 我该如何解决这个问题呢?

  • 我正在尝试在我的手机上部署我新创建的Ionic 3应用程序(我使用的是64位Windows 10),但在运行后抛出错误: 我已经安装了Android Studio。我添加了一个系统变量_JAVA_OPTIONS,其值为-Xmx512M。我还添加了值为-Xmx2048M的系统变量GRADLE_OPTS 否则我有: 为什么还会出现这个错误?

  • 我们重新启动集群上的dastanodes 我们在ambari集群中有15台数据节点机器,而每个数据节点机器都有128G RAM 版本- ( HDP - 2.6.4和安巴里版本2.6.1) 但是,由于以下错误,datanode无法启动 这很奇怪dtnode_heapsize因为 8G ( 数据节点最大 Java 堆大小 = 8G ),从日志中我们也可以看到 所以我们不明白这是怎么回事 dose-与D

  • 我正试着通过这样做来初始化amplify 在Android项目中。不知何故,每次安装失败时,都会出现以下stacktrace: ⠹ 正在云中初始化项目。。。创建CloudFormation堆栈时出错✖ 根堆栈创建失败init失败{InvalidClientTokenId:请求中包含的安全令牌无效。在请求时出现extractError(/usr/local/lib/node_modules/@aws

  • 初始化检出 大多数时候,你会使用checkout从版本库取出一个新拷贝开始使用Subversion,这样会在本机创建一个项目的“本地拷贝”,这个拷贝包括了命令行指定版本库中的HEAD(最新的)版本: $ svn checkout http://svn.collab.net/repos/svn/trunk A trunk/Makefile.in A trunk/ac-helpers A