2009-06-29 15 views
6

Ho creato un file rptdesign utilizzando BIRT IDE. Questo contenuto di file è in carattere Arial, quando esporto il report in PDF in Windows funziona correttamente.Carattere Arial richiesto in PDF (BIRT pdf renderer, Linux)

I utilizza il viewerServlet predefinito per creare report. Ma quando ho spostato il report su un sistema Linux, tutti i contenuti del report sono stati visualizzati in carattere Times New Roman anziché Arial nel file PDF.

Poi ho copiato il file Arial.ttf a/var/font/TrueType e ha aggiunto la seguente riga alla piattaforma/plugins/org.eclipse.birt.report.engine.fonts_2.3.2.r232_20090202/fontsConfig.xml

<font-paths> 
     --------------- 
     --------------- 
     --------------- 
     <path path="/var/font/truetype" /> 
    </font-paths> 

Dopo aver aggiunto questa riga, tutti i contenuti sono in carattere Arial, ma i contenuti in grassetto sembrano compressi e appaiono molto brutti.

Qualcuno ha affrontato questo problema e ha qualche soluzione?

Grazie saluti, Arun

+0

Non conosco il vostro quadro particolare, ma non offre la possibilità di incorporare i caratteri usati nel PDF? – balpha

risposta

0

Prova esplicitamente indicando il vostro cammino verso il tipo di carattere in questo modo:

<font-paths> 
    <path path="/var/font/truetype/arial.ttf" /> 
</font-paths> 

impostazione di questa proprietà (dei font-percorsi) causare la directory font predefiniti per essere ignorati in favore solo dei percorsi in questo set. Questo renderà Arial l'unico font disponibile per il tuo PDF. Per includere i caratteri predefiniti (TNR, Courier, ecc.), Aggiungere il percorso predefinito (org.eclipse.birt.report.engine.fonts) nei plug-in di eclipse anche alle voci dei percorsi dei font.

È inoltre possibile scegliere di aggiungere semplicemente Arial.ttf alla directory predefinita e RIMUOVERE TUTTE LE VOCI dai percorsi dei caratteri e raccogliere il tipo di Arial in questo modo. In entrambi i casi dovrebbe funzionare.

Buona fortuna.

+0

Dopo aver fatto ciò anche i caratteri in grassetto appaiono in grassetto e compressi. Penso che sia lo stesso di includere la cartella dei caratteri. Invece di caricare tutti i font caricherà solo il font Arial. –

+0

Arial.ttf ha una variante in grassetto nel carattere stesso. Finché viene trovata la classe font, è il motore PDF che ha problemi a gestire il peso in grassetto. – MystikSpiral

0

Si può dirmi se c'è qualche problema con font Arial in linux, se i caratteri sono impostati come grassetto

Tutto funziona bene per noi. Qui di seguito è la mia patch per fontsConfig.xml:

<font-aliases> 
    <mapping name="sans-serif" font-family="Arial" /> 
    ... 
</font-aliases> 
<font-paths> 
    <path path="fonts"/> 
</font-paths> 

Put in arial.ttf cartella dei font e dei file arial.xml.

+0

Ciao, Grazie per la risposta. Ma non funziona ancora per me. Ho aggiunto gli alias dei font e i percorsi dei font nel file fontsConfig_pdf.xml. Puoi dirmi come funziona il testo in grassetto nei rapporti, è tutto ok? –

+0

Sì. Grassetto Arial sembra a posto. Hai più file fontsConfig? Vi raccomando (se possibile) di lasciare 1 file fontsConfig.xml e configurare tutto nel file. – FoxyBOA

2

Ecco il mio file fontsConfig_pdf.xml

<font> 
<font-aliases> 
    <mapping name="sans-serif" font-family="Arial" /> 
    <mapping name="serif" font-family="Times-Roman" /> 
    <mapping name="monospace" font-family="Courier" /> 
</font-aliases> 
<font-encodings> 
    <encoding font-family="Times-Roman" encoding="Cp1252" /> 
    <encoding font-family="Helvetica" encoding="Cp1252" /> 
    <encoding font-family="Courier" encoding="Cp1252" /> 
    <encoding font-family="Zapfdingbats" encoding="Cp1252" /> 
    <encoding font-family="Symbol" encoding="Cp1252" /> 
    <encoding font-family="STSong-Light" encoding="UniGB-UCS2-H" /> 
    <encoding font-family="STSongStd-Light" encoding="UniGB-UCS2-H" /> 
    <encoding font-family="MHei-Medium" encoding="UniCNS-UCS2-H" /> 
    <encoding font-family="MSung-Light" encoding="UniCNS-UCS2-H" /> 
    <encoding font-family="MSungStd-Light" encoding="UniCNS-UCS2-H" /> 
    <encoding font-family="HeiseiMin-W3" encoding="UniJIS-UCS2-H" /> 
    <encoding font-family="HeiseiKakuGo-W5" encoding="UniJIS-UCS2-H" /> 
    <encoding font-family="KozMinPro-Regular" encoding="UniJIS-UCS2-H" /> 
    <encoding font-family="HYGoThic-Medium" encoding="UniKS-UCS2-H" /> 
    <encoding font-family="HYSMyeongJo-Medium" encoding="UniKS-UCS2-H" /> 
    <encoding font-family="HYSMyeongJoStd" encoding="UniKS-UCS2-H" /> 
</font-encodings> 
<font-paths> 
     <path path="/var/fonts/truetype"/> 
</font-paths> 
<composite-font name="all-fonts"> 
    <font font-family="Times-Roman" catalog="Western" /> 
    <font font-family="MSung-Light" catalog="Chinese" /> 
    <font font-family="HeiseiKakuGo-W5" catalog="Japanese" /> 
    <font font-family="HYGoThic-Medium" catalog="Korean" /> 
</composite-font> 
</font> 
0

Ho passato ore alla ricerca di questo:

export BIRT_FONT_PATH=/usr/share/fonts/truetype 

Eseguire questa e fatto!

0

Poi ho copiato il file Arial.ttf a/var/font/TrueType

Arial.ttf contiene solo la versione normale del carattere. Per grassetto, corsivo e grassetto corsivo esistono diversi file (arialbd.ttf ecc.). Basta copiare anche questi.