XSL-скрипты, которыми мы до сих пор пользовались, не умеют напрямую транслировать DocBook в PDF. Процесс распадается на два шага:
Стандартные скрипты преобразуют DocBook в XSL-FO.
Для преобразования XSL-FO используются стандартные FO-процессоры.
Мы будем использовать процессор XEP компании RenderX (www.renderx.com).
Альтернативные пути преобразования используют DSSSL скрипты и/или TeX в качестве промежуточного формата. Но на сегодняшний день XSL-FO — наиболее прогрессивная и активно развиваемая технология.
Существуют бесплатные варианты XSL-FO процессоров, самые известные из них Apache FOP и PassiveTex. Но они уступают RenderX XEP по функциональности, к тому же обе эти разработки заморожены (по состоянию на начало 2005 г.) и поэтому перспективы их сомнительны.
Сильная сторона RenderX XEP — полноценная поддержка русского языка, включая расстановку переносов в русском тексте.
Скачайте бесплатную персональную версию процессора. Заполните регистрационную форму с вашим именем и email и получите лицензионный ключ.
Персональная версия отличается от коммерческой тем, что вставляет логотип RenderX внизу каждой сгенерированной страницы. Для целей данной статьи этого достаточно, а для промышленной эксплуатации понадобится приобрести коммерческую лицензию. Технически для перехода на коммерческую лицензию надо просто скопировать файл с лицензионным ключом, полученный от RenderX.
Распакуйте полученный архив и проинсталлируйте его:
# java -jar setup-4.2-20050228-trial.jar -c This program installs XEP 4.2 build 20050228 Edition on your computer. DO YOU AGREE TO THE TERMS OF THE LICENSE AGREEMENT (YES/NO/QUIT) [YES]: Specify XEP installation directory or (QUITE) [/usr/local/RenderX/XEP]: Do you want to activate XEP now? (YES/NO/QUIT) [YES]: Specify XEP license file location or (QUIT) [license-trial.xml]: I'm going to install XEP to the directory /usr/local/RenderX/XEP, read license from the file license-trial.xml. Do you want to continue? (YES/NO/QUIT) [YES]: Copying files .................... Installation successful. #
Вы можете выбрать для инсталляции другой каталог (причем можно пользовательский, а не системный). В дальнейшем тексте предполагается, что RenderX XEP установлен в каталог по умолчанию.
При работе XEP с большими (порядка сотни страниц) документами
ему может не хватит оперативной памяти.
В этом случае увеличьте объем памяти, отводимый для java-машины,
добавив параметр в вызов java в командном файле
/usr/local/RenderX/xep:
"$JAVA_HOME/bin/java" -Xmx500000000
Задайте половину физического объема памяти сервера в байтах (в данном примере задано 500 мегабайт).