Для того чтобы табличка разделялась на части, если она не помещается на лист, необходимо добавить в xsl схему следующий атрибут:
<xsl:attribute-set name="formal.object.properties">
<xsl:attribute name="keep-together.within-column">auto</xsl:attribute>
</xsl:attribute-set>
1/31/2008
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
Вот и все.
русскими буквами.
Продолбался недавно тут с ним весь день.
Итак, что нам потребуется:
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-triplet name="Arial" style="italic" weight="bold"/>
</font>
Потом запускаем fop:
/opt/pkg/fop -xml foo.xml -xsl foo.xsl -pdf foo.pdf
Вот и все.
Подписаться на:
Сообщения (Atom)