2016-04-14 10 views
2

Ich verwende mehrere Schriftarten in einem meiner Berichte, die ich als PDF exportieren, ich benutze IREPORT, um meinen Bericht zu entwerfen.Jasper Reports: Schriftverlängerung funktioniert nicht

Im Vorschaubereich sieht der Bericht gut aus, aber wenn ich ihn aus meiner Web App exportiere, sieht es so aus, als würde ich eine Schriftart für den gesamten Bericht verwenden.

Ich habe dieses Problem gesucht und ich fand zwei Lösungen dafür:

1- Export der Schriftart als .jar-Datei von iReport und fügen Sie ihn in mein Projekt [keine saubere Art und Weise, denn ich bin mit Maven].

2-Use jasperreports_extension.properties [die ich habe ein Problem mit!].

Ich folgte this Tutorial Schritt für Schritt, aber immer noch kein Ergebnis, kein Fehler, nichts.

hier ist der Code ich verwende:

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> 

Da ich verwende Frühling i versuchte dies auch 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> 

und die Schriftart-Dateien im Font-Ordner im Root-Paket.

Wenn jemand versteht, warum das nicht funktioniert bitte lass es dich wissen und danke.

+0

Warum ist dieses Maven markiert? Wenn es irgendwie Maven ist, poste bitte dein POM. Und erkläre ein bisschen mehr über dein Problem. – Tunaki

+0

Ich benutze ein Maven-Projekt nur um Abhängigkeiten zu behandeln !!! Wenn Sie es für notwendig halten, kann ich meine pom.xml posten. –

+1

Okay. Wo befinden sich die Dateien 'jasperreports_extension.properties' und' fonts.xml'? Sie sollten unter "src/main/resources" stehen. – Tunaki

Antwort

6

Ein großes Dankeschön an Herrn @Tunaki für die Hilfe bei der Lösung dieses Problems.

war das Problem, indem sie die jasperreports_extension.properties gelöst und die Schriftarten in der Wurzel des Projekts wie diesem Ordner:

enter image description here

ich hoffe, dass es andere helfen.

Verwandte Themen