2016-07-09 5 views
1

У меня есть контейнер с OSGi с зависимостями Apache FOP. Когда я создаю PDF с настройкой по умолчанию, есть проблемы с русскими символами (#### вместо текста). В тестовом приложении без OSGi эта проблема имеет легкое исправление: я использую пользовательский файл конфигурации fop.xconf и два файла arial * .ttf в том же каталоге. Автоматическое обнаружение в fop.xconf также устраняет эту проблему.Прочитайте конфигурацию и шрифты Apache FOP в контейнере проекта OSGi

Но в контейнере проекта OSGi я не могу прочитать файл conf из ресурсов пакета. Может ли кто-нибудь показать мне пример того, как читать xconf и шрифты из контейнера чертежей? Или как можно программировать шрифты программно без чтения ресурсов.

ответ

1

Итак, я нашел решение. Мы не можем использовать файл() с «bundleresource: // ...» путь, но мы можем использовать URI():

 URL url = getClass().getClassLoader().getResource(FOP_XCONF_FILE); 
     fopFactory = FopFactory.newInstance(url.toURI(), url.openStream()); 

В этом случае мы открываем входной поток конф-файл из наших пачке ресурсов и пропуска это специальное определение FopFactory.newInstance(). Fop.xconf XML с элементом работает как шарм.

Смежные вопросы