Pregunta

Uso BIRT desde los primeros días y todavía tengo acertijos con respecto al emisor de PDF.

Historia corta : ¿Puedo configurar fontsConfig.xml para cargar fuentes desde una ruta relativa o desde archivos jar?

Historia larga: Estamos utilizando tanto FOP como BIRT para generar PDF en nuestra aplicación web. Sería bueno compartir fuentes entre bibliotecas. Desafortunadamente, no puedo encontrar una manera de hacerlo con BIRT 2.3.1

La raíz del mal es fontsConfig.xml Si lo configuro como se muestra a continuación, funciona bien:

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

Pero la ruta no me permite usar ni rutas relativas ni de clase (o no puedo encontrar una forma adecuada de cómo configurarla). Ni config1 ni config2 funcionan.

Config1:

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

Config2:

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

Cualquier pensamiento será apreciado.

¿Fue útil?

Solución

Con algunas versiones BIRT, puedes usar una propiedad del sistema " birt.font.dirs " ;. Esto anula el fontsConfig.xml.

Bueno, esta vez funcionó, pero obviamente se eliminó del código fuente de BIRT más tarde.

Ahora puedes llamar a algo como

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

Platform.startup(engineConfig);

Esto le permite proporcionar a BIRT una versión personalizada de fontsConfig.xml sin buscar en los archivos JAR.

Probado con BIRT 4.3.0.

Otros consejos

Hay una forma de tener fuentes en una ruta relativa para ser usadas en Birt.

Lo que debe hacer es copiar las fuentes a una ubicación en su aplicación web. La mía estaba en C: \\ src \ main \ webapp \ Reports

Ahora en la aplicación, use el siguiente comando para registrar las fuentes de la ubicación mencionada anteriormente.

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

Esto registrará la fuente.

Probado en Birt 4.3 a través de Spring MVC

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top