2015-02-02 12 views
7

Sto provando ad aggiungere il carattere Tahoma al rapporto jasper nella mia app web. Io uso font extension mechanism.Le estensioni dei caratteri non funzionano con JasperReports

È stata generata questa eccezione: net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'TahomaFont' non è disponibile per JVM. Vedi il Javadoc per maggiori dettagli.

Ecco il mio file font.xml:

<fontFamiles> 
    <fontFamily name="TahomaFont"> 
    <normal>export/fonts/BTahoma.ttf</normal> 
    <pdfEncoding>Identity-H</pdfEncoding> 
    <pdfEmbedded>true</pdfEmbedded> 
    </fontFamily> 
<fontFamiles> 

e qui è il mio file jasperreports.properties:

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

anche io ho messo Tahoma.ttf file di font nel mio classpath. Ecco il tag style nella relazione Jasper:

<style fontName="TahomaFont" name="tahoma"/> 

Si prega di farmi sapere dove sto andando male. Grazie in anticipo.

risposta

3

Inserire il font Tahoma.ttf nel percorso della classe è non la strada da percorrere.

Hai ragione a utilizzare le estensioni dei caratteri, è una buona pratica, ma è necessario comprimere i font come estensione del carattere, in un barattolo e aggiungere quel jar al classpath.

  • In JasperReport, gestione dei font, in opzioni, nella scheda Font, selezionare il tipo di carattere e fare clic su esportare come estensione.
  • Imballa il tuo barattolo e le cose dovrebbero funzionare senza dover installare il carattere fisico sulla JVM.

Altre informazioni documentate here.

0

forse è necessario copiare il file jar nella directory java_home/fonts. e se stai utilizzando un progetto Maven devi impacchettare il tuo file jar all'interno di un progetto Maven con le proprietà pom per aggiungere dipendenza a pom.xml