1/29/2008

Настройка fop для генерации pdf с русскими буквами.

Расскажу как настроить fop для того, чтобы он корректно генерировал pdf с
русскими буквами.
Продолбался недавно тут с ним весь день.
Итак, что нам потребуется:
fop ver. >=0.94 (берем отсюда),
можно брать бинарную версию, чтобы не заморачиваться с компиляцией.
ttf шрифты, скажем от windows.

1. Устанавливаем fop в удобный каталог. (к примеру в /opt/pkg/fop).
2. Копируем шрифты в какой нибудь каталог (у меня: /opt/pkg/fop/conf/fonts)
3. Далее генерируем font-maps для каждого шрифта.
Я дела следующим образом:
вот такой вот скрипт:

cmd="java -cp build/fop.jar:lib/batik-all-1.6.jar:lib/xalan-2.7.0.jar:lib/commons-io- 1.3.1.jar:lib/commons-logging-1.0.4.jar:lib/avalon-framework-4.2.0.jar:lib/xml-apis-
1.3.02.jar:lib/serializer-2.7.0.jar:lib/xercesImpl-2.7.1.jar
org.apache.fop.fonts.apps.TTFReader"
dir="conf/fonts"
ext=".xml"

for f in `ls -1 $dir`;
do

echo "processing file : $dir/$f"

fname=`echo $f | cut -d . -f1`

newf="$dir/$fname$ext"

${cmd} $dir/$f $newf

chmod 666 $newf
echo "writing to file $newf : success"

done


4. Далее правим файл конфигурации /opt/pkg/fop, где прописываем соответствующие шрифты:

к примеру для шрифта Arial:

<font metrics-url="/opt/pkg/fop/conf/fonts/arialbi.xml" kerning="yes" embed-url="/opt/pkg/fop/conf/fonts/arialbi.ttf">
<font-triplet name="Arial" style="italic" weight="bold"/>
</font>


Потом запускаем fop:
/opt/pkg/fop -xml foo.xml -xsl foo.xsl -pdf foo.pdf

Вот и все.

1 комментарий:

  1. Привет, можешь кинуть мне твой русифицированный fop ? я всеравно не понимаю как его русифицировать
    4f4@bk.ru

    ОтветитьУдалить