Порядок установки —
1. Скачать бинарный Apache FOP
xmlgraphics.apache.org/fop/download.html#binary
Например, с этого зеркала — www.sai.msu.su/apache/xmlgraphics/fop/binaries
Сохранить в папку, например, в C:\FOP
** далее папки указаны относительно каталога, в котором лежит FOP
** например, /build означает C:\FOP\build
2. Настройка русского текста:
Необходимо сгенерировать метрики шрифтов — для каждого русского .ttf-шрифта, который вы собираетесь использовать, нужно сгенерировать .xml-файл при помощи утилиты, входящей в состав FOP.
** Для старых версий можно скачать готовые метрики, но FOP 0.95 требует их обновить.
** Пример команды для генерации метрики из справки к FOP не работает — выдаётся ошибка, чтобы всё работало нужно указать дополнительные библиотеки.
2.1. Создаём .bat для генерации метрики
Чтобы сгенерировать метрику создаём .bat-файл следующего содержания (например, для шрифта Arial.ttf):
java -cp build\fop.jar;lib\avalon-framework.jar;lib\xml-apis.jar;lib\xercesImpl.jar;lib\xalan.jar;lib\commons-logging-1.0.4.jar;lib\commons-io-1.3.1.jar;lib\xmlgraphics-commons-1.3.1.jar org.apache.fop.fonts.apps.TTFReader C:\WINDOWS\FONTS\Arial.ttf Arial.xml
Помещаем этот .bat-файл в каталог с FOP, запускаем, результат — в этом же каталоге создаётся .xml-файл с метрикой шрифта (в примере — Arial.xml).
2.2. Копируем метрики в отдельную папку
Копируем сгенерированные .xml-метрики в отдельную папку, например, создаём /font-metrics
2.3. Подключаем метрики
Для каждого шрифта, который мы хотим использовать, в конфигурационном файле /conf/fop.xconf добавляем строку (на примере Arial.ttf):
<font-triplet name=«Arial» style=«normal» weight=«normal»/>
2.4. Подключаем конфигурационный файл
Подключаем конфигурационный файл — правим последнюю строку в fop.bat:
"%JAVACMD%" %JAVAOPTS% %LOGCHOICE% %LOGLEVEL% -cp "%LOCALCLASSPATH%" org.apache.fop.cli.Main %FOP_CMD_LINE_ARGS% -c C:\FOP\conf\fop.xconf
3. (необязательно) Добавляем возможность импорта из нескольких PDF
*** это чтобы можно было собирать из нескольких pdf один при помощи <fo:external-graphic src="….pdf"/>
3.1. Скачать библиотеку, которая позволяет импортировать PDF-ки
www.jeremias-maerki.ch/download/fop/pdf-images
Скачанные библиотеки скопировать, например, в папку /build
3.2. Скачать библиотеку, которая позволяет импортировать PDF-ки
Подключить скачанные библиотеки — добавить в FOP.BAT строки
set LOCALCLASSPATH=%LOCALCLASSPATH%;%LOCAL_FOP_HOME%build\fop-pdf-images-1.3.jar
set LOCALCLASSPATH=%LOCALCLASSPATH%;%LOCAL_FOP_HOME%build\PDFBox-0.7.4-dev.jar
Всё, можно пользоваться FOP.
*** Проверьте, что.fo-файлы, которые вы передаёте FOP, используют кодировку windows-1251:
<?xml version=«1.0» encoding=«windows-1251»?>
********************************************************************
PS. В сети информации по настройке FOP для windows не нашёл, потратил несколько (много :) ) часов на «танцы с бубном».