JasperSoft Studio выдает проблемы с инициализацией шрифтов - PullRequest
0 голосов
/ 03 мая 2020

все, у меня возникают проблемы при редактировании моего отчета Jasper в Jaspersoft Studio, показано следующее исключение.

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

Чтобы вызвать ошибку, все, что мне нужно сделать, это попытаться отредактировать любое текстовое поле или текст c. Ниже мой отчет и шрифты. xml в файле проекта fonts.jar. Я пытаюсь использовать шрифт Roboto, который включен в раздел настроек JasperSoft, и я должен включить в него все необходимые файлы.

Это происходит во всех отчетах по проекту, здесь образец.

<?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>

Project's 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>

...