Domanda

Sto cercando di generare un report con DynamicJasper, ma ricevo il seguente errore:

net.sf.jasperreports.engine.util.JRFontNotFoundException:  
                                 Font 'Arial' is not available to the JVM.   

msttcorefonts è installato, ma immagino che la JVM non ne utilizzi alcun carattere.

Sto usando Ubuntu 10.04.

Come posso risolvere questo problema?

È stato utile?

Soluzione

Ho provato a installare mscorefonts, ma il pacchetto è stato installato e up-to-date.

sudo apt-get update
sudo apt-get install ttf-mscorefonts-installer

Ho provato a cercare per il font nel file system, con:

ls /usr/share/fonts/truetype/msttcorefonts/

Questa cartella appena avuto il README, con le istruzioni corrette su come installare.

cat /usr/share/fonts/truetype/msttcorefonts/README

È necessaria una connessione internet per questo:

sudo apt-get install --reinstall ttf-mscorefonts-installer

ho ri-installato ttf-mscorefonts-installer (come sopra indicato, facendo attenzione ad accettare l'EULA!) E il problema è stato risolto.

Altri suggerimenti

JasperReports solleva a JRFontNotFoundException nel caso in cui il carattere utilizzato all'interno di un modello di report non sia disponibile per la JVM come carattere di sistema o come carattere proveniente da un'estensione del carattere JR.Ciò garantisce che tutti i problemi causati dalla mancata corrispondenza delle metriche dei caratteri vengano evitati e riceviamo un avviso tempestivo sull'incoerenza.

Jasper riferisce che ci sta provando Aiutarti nello sviluppo del tuo report, affermando che non può esportare correttamente il tuo report poiché non riesce a trovare il carattere definito in TextField O StaticText

<font fontName="Arial"/>

si, puoi disattivare questo impostando net.sf.jasperreports.awt.ignore.missing.font vero ma lo avrai incoerenze nelle esportazioni.

si, puoi installare il carattere come carattere di sistema JVM (ma è necessario farlo su ogni PC utilizzato che può generare report ed è comunque possibile avere problemi di codifica).

Il modo corretto!

Utilizzo Estensioni dei caratteri!, se desideri crearne uno tuo (vedi link sotto), jasper report distribuisce anche un jar di estensione dei caratteri predefinito (jasperreports-fonts-x.x.x.jar), che supporta fontName DejaVu Sans, DejaVu Serif E DejaVu Sans Mono

<font fontName="DejaVu Sans"/>

Dalla guida definitiva di JasperReport:

Incoraggiamo fortemente le persone a utilizzare solo caratteri derivati ​​dalle estensioni dei caratteri, perché questo è l'unico modo per assicurarsi che i caratteri siano disponibili per l'applicazione quando i rapporti vengono eseguiti in fase di esecuzione.L'uso dei caratteri di sistema porta sempre il rischio per i rapporti di non funzionare correttamente quando distribuiti su una nuova macchina che potrebbe non avere quei caratteri installati

Collegamenti su StackOverflow su come eseguire il rendering corretto dei caratteri in PDF

Lista di controllo su come rendere correttamente il carattere in pdf

Genera estensioni dei caratteri con JasperSoft Studio

Genera estensioni dei caratteri con iReport

Io uso IReport installare font:

  

Strumenti -> Opzioni -> font -> fare clic su Installa carattere

Quindi selezionare il tipo di carattere e fare clic su

  

-> Esporta come interno e il nome tipo myfont.jar

aggiungere questo barattolo e anche spring.jar * per il vostro percorso di generazione.

* copia spring.jar da Jaspersoft \ iReport-3.7.0 \ iReport \ moduli \ ext

Per CentOS:

msttcorefonts

Quindi:

tar -zxvf msttcorefonts.tar.gz
cp msttcorefonts/*.ttf  /usr/share/fonts/TTF/
fc-cache -fv 

Dopo tutto, riavviare JVM.

opere sudo apt-get install msttcorefonts (sul nostro ambiente di sviluppo di Ubuntu), ma non è una soluzione molto buona.

Invece, abbiamo in bundle i font con la nostra applicazione sulla base di questo punta. La loro file JAR raggruppa i seguenti tipi di carattere,

  • Arial
  • Times New Roman
  • Courier New
  • Comic Sans MS
  • Georgia
  • Verdana
  • Monospaced

Direct Link per il download jar: Maven ver 1.0. DynamicFonts

Ci sono tre metodo per evitare un tale problema.

Metodo 1:. Proprietà dei font impostando ignore mancante

JRProperties.setProperty("net.sf.jasperreports.awt.ignore.missing.font", "true");

oppure è possibile impostare questa proprietà inserendo seguente riga nel .jrxml file.

<property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>

Metodo 2:. Impostando la proprietà font di default

JRProperties.setProperty("net.sf.jasperreports.default.font.name", "Sans Serif");

oppure è possibile impostare questa proprietà inserendo seguente riga nel .jrxml file.

<property name="net.sf.jasperreports.default.font.name" value="Sans Serif"/>

Metodo 3:. Con l'aggiunta di proprietà font mancante

In primo luogo installare i font in IReport mancante selezionando "Strumenti >> Opzioni >> >> Fonts Installare Font", quindi selezionare il tipo di carattere e tutti Esportare questa Cliccando su "Esporta come Extension" con .jar di estensione.

È possibile utilizzare questo barattolo per JasperReports-font.X.X.X.jar che sarà presente nella libreria di progetto o il percorso di classe.

Ho risolto questo scegliendo 'SansSerif' o 'Serif' e non 'Arial' o 'Times New Roman'.

può rendere il vostro font personalizzati tramite iReport e la conversione di file, come vasetti

Prova ad aggiungere la riga

net.sf.jasperreports.awt.ignore.missing.font = true

al vostro file jasperreports.properties.

Jasper si ferma a trovare un font

È possibile farlo con dei font, che significa ovunque si desidera eseguire quella particolare applicazione. modo più semplice è sufficiente aggiungere questa riga al vostro file bl jrxml:

 <property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>

La speranza aiuta.

I affrontato il problema con la mia applicazione web basata su Spring 3 e distribuito su Weblogic 10.3 su Oracle Linux 6. La soluzione accennato link non ha funzionato per me.

Ho dovuto adottare le seguenti misure -  1. Copiare il file di font Arial * .ttf a JROCKIT_JAVA_HOME / / directory jre lib / fonts  2. voci fanno del font in fontconfig.properties.src  3. Riavviare il cluster da console Weblogic

filename.Arial=Arial.ttf
filename.Arial_Bold=Arial_Bold.ttf
filename.Arial_Italic=Arial_Italic.ttf
filename.Arial_Bold_Italic=Arial_Bold_Italic.ttf

Per Debian

Aggiungi

non-free contrib

per deb e deb-src in /etc/apt/sources.list cioè:

deb http://ftp.debian.org/debian/ squeeze main non-free contrib
deb-src http://ftp.debian.org/debian/ squeeze main non-free contrib

Poi

apt-get update
apt-get install msttcorefonts

Naturalmente avrete bisogno di riavviare JasperServer. vale a dire:

/opt/jasperreports-server-cp-4.5.0/ctlscript.sh restart

Cambia per la versione / percorso.

Crea Jasper report in più lingue (Unicode)

1) Installare font nel iReport Desginer

2) creare estensione del tipo di carattere (lo useremo nelle applicazioni classpath)

3) l'installazione di font su OS (opzionale)

4) incollare tutte .ttf di carattere in jre-> liberatore> directory dei font (altrimenti applicazione web getterà carattere errore non è disponibile per JVM)

Se si utilizza Maven nel progetto, si può semplicemente aggiungere la dipendenza Jasper-font per pom.xml:

<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports-fonts</artifactId>
    <version>6.8.1</version>
</dependency>

Installazione del carattere mancante sul sistema può essere una soluzione di lavoro, ma non per me, io non voglio avere per installare i font mancanti dopo ogni distribuzione in un nuovo server, invece ho optato per incorporare il tipo di carattere con l'applicazione .

Saluti.

In realtà ho risolto questo problema in un modo molto semplice

  1. vai al tuo home path , come /root
  2. creare una cartella denominata .fonts
  3. copiare il all your font files a .fonts, è possibile copiare il tipo di carattere da C:\windows\fonts Se si utilizza Windows.
  4. sudo apt-get install fontconfig
  5. fc-cache –fv ai font rebuid cache.

Soluzione in 2 fasi (se si utilizza CentOS)

  1. Scarica il pacchetto di Microsoft font principali rpm.

    [root@WEBSVR~/]# wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm
    
  2. Installare il pacchetto rpm.

    [root@WEBSVR~/]# rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm
    

Copiare i font sul seguente directory JDK_HOME \ jre \ lib \ fonts

Ehi problemi di visualizzazione documenti prodotti su Windows?

Si può provare una soluzione multa facile:

  

yum install ricciolo cabextract xorg-x11-font-utils fontconfig

     

rpm -i    https: //downloads.sourceforge. net / progetto / mscorefonts2 / rpms / msttcore-fonts-installer-2.6-1.noarch.rpm

Dopo questo ho bisogno riavvio il mio sistema CentOS6.

Fonte: http://mscorefonts2.sourceforge.net/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top