Для печати документов в формате PDF, необходимо выполнить предварительную настройку внешнего XSL-FO (XSL formatting objects) процессора. В данной статье описана настройка Apache FOP.
Процесс настройки состоит из пяти шагов:
- Указание параметров вызова FO-процессора.
- Загрузка шрифта.
- Регистрация используемого шрифта.
- Перезапуск BILLmanager.
Параметры вызова FO-процессора
Параметры вызова FO-процессора указываются в конфигурационном файле BILLmanager - '/usr/local/mgr5/etc/billmgr.conf'. В него необходимо добавить следующую строку:
XSLFOProc fop -c /etc/fop.conf.d/userconfig.xml -xml __xml__ -xsl __xsl__ -pdf __pdf__
Параметры, помещенные в двойные знаки подчеркивания, ("__xml__", "__xsl__" и "__pdf__") автоматически будут заменяться на директории соответствующих файлов.
Например, имеется следующая команда на выполнение:
/bin/sh -c fop\ -c\ /etc/fop.conf.d/userconfig.xml\ -xml\ tmp/xml.fTqNMx\ -xsl\ skins/common/xsl/report.pdf.xsl\ -pdf\ tmp/pdf.mXEPYN
В строке значения "tmp/xml.fTqNMx" и "tmp/pdf.mXEPYN" были подставлены автоматически, вместо "__xml__" и "__pdf__" соответственно.
Загрузка шрифта
Файл шрифта необходимо загрузить на сервер, в директорию '/etc/fop.conf.d/fonts/'.
После размещения файла, требуется сгенерировать файл метрики:
fop-ttfreader /etc/fop.conf.d/fonts/arial.ttf /etc/fop.conf.d/fonts/arial.xml
Регистрация шрифта
Для регистрации шрифтов используется конфигурационный файл FOP: '/etc/fop.conf.d/userconfig.xml'. Если такой файл отсутствует, то необходимо создать его вручную.
Содержание конфигурационного файла FOP, в котором зарегистрирован шрифт Arial:
<?xml version="1.0"?>
<fop>
<renderers>
<renderer mime="application/pdf">
<fonts>
<font metrics-url="/etc/fop.conf.d/fonts/arial.xml" kerning="yes" embed-url="/etc/fop.conf.d/fonts/arial.ttf">
<font-triplet name="Arial" style="normal" weight="normal"/>
<font-triplet name="ArialMT" style="normal" weight="normal"/>
</font>
</fonts>
</renderer>
</renderers>
</fop>
Перезапуск BILLmanager
Для перезапуска BILLmanager используется команда:
/usr/local/mgr5/sbin/mgrctl -m billmgr exit