2012-09-14 9 views
5

Sto lavorando a un progetto Java che utilizza Jasperreports. Ho lavorato diverse volte in altri progetti utilizzando la stessa tecnologia, e ho avuto lo stesso problema quando ho provato a stampare un report in ambienti Unix.Il carattere "Arial" non è disponibile per JVM

Il mio progetto utilizza:

  • JBoss 4.2.3.GA
  • Java 1.6
  • JasperReports 4.7.0

L'eccezione generata è:

net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'Arial' is not available to the JVM. See the Javadoc for more details. 

Ho trovato una soluzione comune per risolvere questo problema E e Ir funziona davvero:

sudo apt-get install msttcorefonts 

Tuttavia, voglio capire come funziona Jasper con i font, e come si cerca installati in ambienti Unix questo font. Forse una domanda migliore è: come JVM gestisce i caratteri nativi? Qualcuno può darmi una spiegazione dettagliata su questo argomento? Come vengono resi disponibili i font di sistema per JVM in runtime?

+2

Si dovrebbe leggere su [Font Extensions] (http://jasperforge.org/uploads/publish/jasperreportswebsite/trunk/sample.reference/fonts/index.html) meccanismo. Puoi anche trovare maggiori dettagli in * JasperReports Ultimate Guide *. Per una migliore comprensione puoi esplorare i file sorgente di * Motore JR * –

+0

Esiste una fonte per questo nei documenti JVM? – gdfbarbosa

+0

Cosa intendi? –

risposta

4

Java chiede al sistema operativo di fornire i caratteri. Come funziona dipende dal sistema operativo.

http://en.wikipedia.org/wiki/Arial afferma la sua è installato su MS-Windows e Mac OSX

0

Sono stato anche affrontando lo stesso problema su Jasper 5.0. Ho seguito i passaggi seguenti:

  1. Posizionare il jasper-fonts.jar;
  2. Installa i caratteri mancanti in linux;
  3. Riavvia il server JBoss.
+0

Ha funzionato? Da dove proviene jasper-fonts.jar? – Gustavo

0

Aggiornamento per l'anno 2015:

Aggiungere questo (o decommentare in) /etc/apt/sources.list

deb http://us.archive.ubuntu.com/ubuntu/ trusty multiverse 
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty multiverse 
deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse 
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse 

Quindi eseguire questo:

sudo apt-get update 
sudo apt-get install msttcorefonts 
2

Se non vuoi passare attraverso il fastidio di scaricare giare e cosa no, basta andare al centro del software e fare clic su Installa Ubuntu restrizioni extra. Questo pacchetto installerà non solo i font MS ma altri supporti per le applicazioni con diritti d'autore limitati.

Questo funziona per Ubuntu Systems.

0

per OpenSuse

convalidare i font non è aviable su SO fc-list | grep "Arial"

installare il seguente rpm sudo rpm -ivh msttcore-fonts-2.0-3.noarch.rpm

o Download da pagina:

http://www.mjmwired.net/resources/mjm-fedora-f11.html#ttf

installare l'RPM

validate di nuovo fc-list | grep "Arial"

Riavviare il server aplication

Problemi correlati