BIRT: PDF-эмиттер, загрузка / использование шрифтов из относительного пути или из файлов JAR - PullRequest
4 голосов
/ 01 ноября 2008

Я использую BIRT с ранних дней и до сих пор сталкиваюсь с загадками, касающимися эмиттера PDF.

Рассказ : Могу ли я настроить fontsConfig.xml для загрузки шрифтов из относительного пути или из jars?

Длинная история: Мы используем FOP и BIRT для создания PDF в нашем веб-приложении. Было бы неплохо разделить шрифты между библиотеками. К сожалению, я не могу найти способ сделать это с BIRT 2.3.1

Корень зла - fontsConfig.xml Если я настрою его, как показано ниже, он будет работать нормально:

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

Но путь не позволяет мне использовать ни относительные пути, ни classpath (или я не могу найти подходящий способ его настройки). Ни config1, ни config2 не работают.

Config1:

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

Config2:

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

Любые мысли будут оценены.

Ответы [ 2 ]

2 голосов
/ 11 февраля 2014

В некоторых версиях BIRT вы можете использовать SystemProperty "birt.font.dirs". Это переопределяет fontsConfig.xml.

Ну, это когда-то работало, но, очевидно, позже оно было удалено из исходного кода BIRT.

Теперь вы можете называть что-то вроде

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

Platform.startup(engineConfig);

Это позволяет вам предоставить BIRT настроенную версию файла fontsConfig.xml без использования JAR-файлов.

Протестировано с BIRT 4.3.0.

1 голос
/ 06 марта 2014

Есть способ разместить шрифты на относительном пути, который будет использоваться в Birt.

Что вам нужно сделать, это скопировать шрифты в папку в вашем веб-приложении. Мой был в: C: \\ ЦСИ \ главная \ WebApp \ Reports

Теперь в приложении используйте следующую команду для регистрации шрифтов из вышеупомянутого местоположения.

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

Это позволит зарегистрировать шрифт.

Проверено на Birt 4.3 - Spring MVC

...