java и apache fop

chriselwart

Привет. В общем задачка следующая:
есть некоторая war-ка, в которой используется apache fop.
в корне варки лежит файл fo-fonts-cfg.xml и папочка fonts содержащая файлы xml и ttf для шрифтов.
В файле конфигурации описания шрифтов выглядят следующим образом:
<font metrics-url="./fonts/arial.xml" kerning="yes" embed-url="./fonts/arial.ttf">
<font-triplet name="Arial" style="normal" weight="normal"/>
<font-triplet name="ArialMT" style="normal" weight="normal"/>
</font>
При этом если использовать установленный fop и запускать команду
fop - xsl 1.xsl -xml 1.xml -c fo-fonts-cfg.xml -pdf 1.pdf, но шрифты все цепляются и все заебись работает
Теперь кладем варку в томкат и начинаем дергать методы, которые запускают тоже самое преобразование.
Эта хрень начинает выдавать следующую ошибку:
Error occured: Unknown error: class exceptions.OperationError::Error while executing 'xsl-fo' operation: Can't process XSL-FO (FOPException): Failed to resolve font with embed-url './fonts/arial.ttf'
Причем магическое изменение пути на все что мне в голову пришло не помогает.
Помогите и скажите как правильно подцепить шрифты.

katrin2201

А код, который пытается шрифт загрузить, не смотрел?
В WEB-INF/ пробовал fonts класть?

chriselwart

Код не смотрел.
Человек писавший код говорит, что дело в настройках fop.
Папку положил - не помогло.

katrin2201

Гугл показывает, что резолвится относительно cwd - то есть рабочей папки вебсервера.
Пожалуй, проще всего указать абсолютный путь к папке с фонтами.
http://xmlgraphics.apache.org/fop/0.95/configuration.html#ge...
http://old.nabble.com/got-the-exception-when-generating-PDF-...
http://old.nabble.com/DO-NOT-REPLY--Bug-46154--New:-Can't-find-Fonts-in-JAR-td20344412.html
[x] парсер лох

chriselwart

Пробовал указывать абсолютный путь. Походу такая же фигня.

katrin2201

Тогда хз... Я б подебажился в дельта-окрестности кидания эксепшена.

chriselwart

Тогда хз... Я б подебажился в дельта-окрестности кидания эксепшена.
2.11. FOP does not find my fonts.
Did you get: “Failed to read font metrics file C:\foo\arial.xml : File "C:\foo\arial.xml" not found”? The value for the metrics-file attribute in the user config file is actually an URL, not a file name. Use "file:///C:/foo/arial.xml" instead.
If you used a relative URL, make sure your application has the working directory you expect. Currently FOP does not use the baseDir for resolving relative URLs pointing to font metric files.
Try also setting the font-base configuration.
Интересно что он считает рабочей директорией.

katrin2201

cwd веб-сервера, вестимо.

chriselwart

cwd веб-сервера, вестимо.
Короче я указал внешний путь /opt/fonts/ и так заработало. Хотя я вчера писал абсолютный путь внутрь текущей папки, но не помогало :(
Оставить комментарий
Имя или ник:
Комментарий: