2008-11-01 9 views
4

J'emploie BIRT depuis les premiers jours et ai toujours des énigmes concernant l'émetteur de pdf. Puis-je configurer fontsConfig.xml pour charger les polices à partir du chemin relatif ou à partir des fichiers jar?BIRT: émetteur de pdf, charger/utiliser des polices du chemin relatif ou des dossiers de pot

longue histoire: Nous utilisons à la fois FOP et BIRT pour générer PDF dans notre application web. Ce serait bien de partager des polices entre les bibliothèques. Malheureusement, je ne peux pas trouver un moyen de le faire avec BIRT 2.3.1

La racine du mal est fontsConfig.xml Si je configure comme ci-dessous fonctionne très bien:

<font-paths> 
<path path="fonts"/> 
</font-paths> 

Mais chemin ne me permet pas d'utiliser ni chemins relatifs pas classpath (ou je ne peux pas trouver un moyen approprié comment le configurer). Ni config1 ni config2 ne fonctionnent.

config1:

<font-paths> 
<path path="../fonts"/> 
</font-paths> 

config2:

<font-paths> 
<path path="classpath:fonts"/> 
</font-paths> 

Toutes les pensées seront appréciés.

Répondre

2

Avec certaines versions de BIRT, vous pouvez utiliser SystemProperty "birt.font.dirs". Cela remplace le fichier fontsConfig.xml. Eh bien, cela a déjà fonctionné, mais de toute évidence, il a été retiré du code source BIRT plus tard.

Maintenant, vous pouvez appeler quelque chose comme

EngineConfig engineConfig = new EngineConfig(); 
URL fontsConfigurationURL = new URL("file:///path/to/my/fontsConfig.xml"); 
engineConfig.setFontConfig(fontsConfigurationURL); 

Platform.startup(engineConfig); 

Cela vous permet de fournir BIRT avec une version personnalisée de fontsConfig.xml sans farfouillé dans les fichiers JAR.

Testé avec BIRT 4.3.0.

1

Il existe un moyen d'avoir des polices sur un chemin relatif à utiliser dans Birt.

Ce que vous devez faire est de copier les polices à un emplacement dans votre application Web. Le mien était dans: C: \\ src \ main \ webapp \ Rapports

Maintenant dans l'application, utilisez la commande suivante pour enregistrer les polices à partir de l'emplacement mentionné ci-dessus.

FontFactory.registerDirectory(scContext.getRealPath("/Reports")); 

Ce enregistrera la police.

Testé sur Birt 4.3 à Spring MVC

Questions connexes