2016-04-14 20 views
2

私はPDF形式でエクスポートするレポートに複数のフォントを使用しています。私はIREPORTを使用してレポートをデザインしています。Jasper Reports:フォント拡張機能が動作しない

プレビューセクションではレポートは見た目が良くなりますが、ウェブアプリケーションからエクスポートするとレポート全体に1つのフォントが使用されているように見えます。

私はこの問題を探索していると私はそれのための2つの解決策が見つかりました:私が使用しているので

1-、ないクリーンな方法[iReportはから.jarファイルとしてフォントをエクスポートし、自分のプロジェクトに追加しますメイヴァン]。

2-Use jasperreports_extension.properties [問題が発生している!]

私はチュートリアルのステップごとにthisのチュートリアルを続けましたが、何もエラーはありません。

jasperreports_extension.properties:

net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory 
net.sf.jasperreports.extension.simple.font.families.myfamily=fonts/fonts.xml 

fonts.xml:

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

<fontFamilies> 

    <fontFamily name="Arial"> 
     <normal><![CDATA[fonts/arial.ttf]]></normal> 
     <pdfEmbedded><![CDATA[true]]></pdfEmbedded> 
    </fontFamily> 

    <fontFamily name="Algerian"> 
     <normal><![CDATA[fonts/Algerian.ttf]]></normal> 
     <pdfEmbedded><![CDATA[true]]></pdfEmbedded> 
    </fontFamily> 

    <fontFamily name="Bell Mt"> 
     <normal><![CDATA[fonts/bell-mt.ttf]]></normal> 
     <pdfEmbedded><![CDATA[true]]></pdfEmbedded> 
    </fontFamily> 

    <fontFamily name="Savoye Std"> 
     <normal><![CDATA[fonts/SavoyeStd.ttf]]></normal> 
     <pdfEmbedded><![CDATA[true]]></pdfEmbedded> 
    </fontFamily> 

    <fontFamily name="Cambria"> 
     <normal><![CDATA[fonts/Cambria.ttf]]></normal> 
     <normal><![CDATA[fonts/cambriab.ttf]]></normal> 
     <normal><![CDATA[fonts/cambriai.ttf]]></normal> 
     <normal><![CDATA[fonts/cambriaz.ttf]]></normal> 
     <pdfEmbedded><![CDATA[true]]></pdfEmbedded> 
    </fontFamily> 

</fontFamilies> 

私が使用しているので、春の私、ここで

は、私が使用しているコードです。これも試しました fonts.xml:

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

<beans:beans 

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" 

    xmlns:jee="http://www.springframework.org/schema/jee" 

    xsi:schemaLocation=" 

     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 

     http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.3.xsd 

     http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd"> 

    <beans:bean id="Arial" class="net.sf.jasperreports.engine.fonts.SimpleFontFamily"> 

     <beans:property name="name" value="Arial"/> 
     <beans:property name="normal" value="fonts/arial.ttf"/>  
     <beans:property name="pdfEncoding" value="Identity-H"/> 
     <beans:property name="pdfEmbedded" value="true"/> 

    </beans:bean> 

    <beans:bean id="Algerian" class="net.sf.jasperreports.engine.fonts.SimpleFontFamily"> 

     <beans:property name="name" value="Algerian"/> 
     <beans:property name="normal" value="fonts/Algerian.ttf"/>  
     <beans:property name="pdfEncoding" value="Identity-H"/> 
     <beans:property name="pdfEmbedded" value="true"/> 

    </beans:bean> 

    <beans:bean id="BellMt" class="net.sf.jasperreports.engine.fonts.SimpleFontFamily"> 

     <beans:property name="name" value="Bell Mt"/> 
     <beans:property name="normal" value="fonts/bell-mt.ttf"/>  
     <beans:property name="pdfEncoding" value="Identity-H"/> 
     <beans:property name="pdfEmbedded" value="true"/> 

    </beans:bean> 

    <beans:bean id="SavoyeStd" class="net.sf.jasperreports.engine.fonts.SimpleFontFamily"> 

     <beans:property name="name" value="Savoye Std"/> 
     <beans:property name="normal" value="fonts/SavoyeStd.ttf"/>  
     <beans:property name="pdfEncoding" value="Identity-H"/> 
     <beans:property name="pdfEmbedded" value="true"/> 

    </beans:bean> 

    <beans:bean id="Cambria" class="net.sf.jasperreports.engine.fonts.SimpleFontFamily"> 

     <beans:property name="name" value="Cambria"/> 
     <beans:property name="normal" value="fonts/Cambria.ttf"/> 
     <beans:property name="bold" value="fonts/cambriab.ttf"/> 
     <beans:property name="italic" value="fonts/cambriai.ttf"/> 
     <beans:property name="boldItalic" value="fonts/cambriaz.ttf"/>  
     <beans:property name="pdfEncoding" value="Identity-H"/> 
     <beans:property name="pdfEmbedded" value="true"/> 

    </beans:bean> 

</beans:beans> 

とルートパッケージ内のフォントフォルダ内のフォントファイル。

なぜこれが機能しないのか理解している場合は、お知らせくださいありがとうございます。

+0

なぜこのタグ付きMavenですか?何とかMavenに関係がある場合は、POMを投稿してください。あなたの問題についてもう少し説明してください。 – Tunaki

+0

私は依存関係を処理するためにmavenプロジェクトを使用しています!あなたが必要と判断すれば、私はpom.xmlを投稿することができます –

+1

いいえ。 'jasperreports_extension.properties'と' fonts.xml'ファイルはどこにありますか?それらは 'src/main/resources'の下になければなりません。 – Tunaki

答えて

6

この問題の解決を手伝ってくれたMr. @ Tunakiに大変感謝します。

問題は、このようなプロジェクトのルートにjasperreports_extension.propertiesフォントフォルダを置くことによって解決された:

enter image description here

私はそれが他人を助けることを願っています。

関連する問題