Добавление новых шрифтов в FO шаблоны

Материал из BiTel WiKi

Версия от 05:48, 25 апреля 2012; DimOn (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Внимание! Данное решение/метод/статья относится к версии 5.1 и старее и для других версий может быть неактуальна! Вам нужно самостоятельно поправить решение под свои нужды или воспользоваться помощью на форуме. Будем признательны, если внизу страницы или отдельной статьёй вы разместите исправленное решение для другой версии или подсказки что надо исправить.

Рассмотрим пример добавления нового шрифта для использования его в XSLT:FO шаблонах на примере шрифта arialn. Изначально имеем TTF файлы arialn.ttf (простое начертание) и arialnb.ttf (полужирное начертание, переименован в arialnbold.ttf). Файлы размещены в каталоге /home/shamil/tmp/arialn. Для генерации XML файла с описанием перейти в каталог BGBillingServer и выполнить (скорректировать свой путь к java):

This font contains no embedding license restrictions
[shamil@shamil Billing]$ /usr/jdk6/bin/java -cp ./lib/fop.jar:./lib/xalan.jar:./lib/xerces.jar org.apache.fop.fonts.apps.TTFReader "/home/shamil/tmp/arialn/arialn.ttf" /home/shamil/tmp/arialn/arialn.xml
TTF Reader v1.1.1

Reading /home/shamil/tmp/arialn/arialn.ttf...

Number of glyphs in font: 663
Creating xml font file...

Creating CID encoded metrics
Writing xml font file /home/shamil/tmp/arialn/arialn.xml...

This font contains no embedding license restrictions

[shamil@shamil Billing]$ /usr/jdk6/bin/java -cp ./lib/fop.jar:./lib/xalan.jar:./lib/xerces.jar org.apache.fop.fonts.apps.TTFReader "/home/shamil/tmp/arialn/arialnbold.ttf" /home/shamil/tmp/arialn/arialnbold.xml
TTF Reader v1.1.1

Reading /home/shamil/tmp/arialn/arialnbold.ttf...

Number of glyphs in font: 664
Creating xml font file...

Creating CID encoded metrics
Writing xml font file /home/shamil/tmp/arialn/arialnbold.xml...

This font contains no embedding license restrictions

Далее открыть файл /conf/userconfig.xml в библиотеке BGBillingServer/lib/fop.jar (открывается архиватором) и добавить строки:

<font metrics-file="arialn.xml" kerning="yes" embed-file="arialn.ttf">
     <font-triplet name="arialn" style="normal" weight="normal"/>
</font>
<font metrics-file="arialnbold.xml" kerning="yes" embed-file="arialnbold.ttf">
     <font-triplet name="arialn" style="normal" weight="bold"/>
</font>

Файлы из /home/shamil/tmp/arialn поместить в fop.jar/conf. Все, теперь можно использовать шрифт arialn с начертанием bold и обычным в XSLT:FO файлах (шаблоны счетов и фактур, карточки договоров). Библиотеку fop.jar нужно так же поместить в BGBillingClient/lib. Если вы хотите, чтобы шрифт был включен в дистрибутив, вы можете выслать все конфигурации разработчикам.

Личные инструменты