Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Русификация FOP 0.95 |
Автор: ReFLeXive 17.3.2010, 16:26 | ||||
ПРивет всем! ПРоблема с русификацией FOP 0.95. КОгда вывожу в RTF - показывает русские буквы, а когда в PDF - то показывает решетки! Делал следующее: в каталоге conf в файле fop.xconf прописал шрифты в разделе <fonts>...</fonts> таким образом:
В Java приложении использую вот такой код:
Как я понял по выводу в консоли IDE мое приложение этот конфиг считывает(задает размеры страницы), но с русскими шрифтами в PDF работать не хочет... Что сделать с этим? PS. Сайт http://www.openmechanics.net/rusfop/ никак не помог - там старая версия FOPa |
Автор: ReFLeXive 18.3.2010, 11:04 |
Никто не знает какой шрифт по умолчанию используется в FOP ? |
Автор: serger 18.3.2010, 16:00 |
По-моему, надо свои шрифты пихать. Не помню как решал эту проблему - 3 года прошло. ![]() Добавлено через 2 минуты и 14 секунд Ну, батенька, ![]() http://www.sql.ru/Forum/actualthread.aspx?bid=38&tid=491835&hl= Да, надо свои шрифты, но пропускать через FOP/ |
Автор: ReFLeXive 19.3.2010, 13:14 | ||
Уважаемый serger, спасибо за ссылку! Однако мой код выше почти полностью идентичен по логике с тем, что вы привели по ссылке! я переписал по новой класс, скачал кириллические шрифты, сделал для них метрики командой:
Метрики успешно создались, я их вместе с файлом шрифта скопировал в каталог, с конфигом! И все равно - решетки вместо русских букв! Также думал, что дело в кодировке, однако в xml прописана кодировка UTF-8, файлы создавались в кодировке UTF-8 и в RTF русские буквы очень хорошо отображаются!!! |
Автор: ReFLeXive 22.3.2010, 12:52 |
Есть какие нить мысли? ) |
Автор: Egik2 22.3.2010, 17:27 |
Есть. Давно на форум не заходил, а то бы помог. Нужно ставить собственный FOP из сырцов. Я уже сталкивался с такой же проблемой ![]() Посмотри здесь, поможет http://xmlsite.sourceforge.net/rusfop/ |
Автор: ReFLeXive 23.3.2010, 14:58 |
Я как то пробовал, но что то сходу не получилось. Попробую еще разок. К сожалению, данный ресурс не поможет, поскольку описанное там относиться к FOP версий 0.19.х - 0.20. Работа с версиями 0.9х значительно изменилась по сравнению с предыдущими. К тому ж по сути я занимаюсь обновлением этой библиотеки в проекте, т.к. возникла реальная необходимость именно в версии 0.9х (рендеринг в формат RTF). |
Автор: ReFLeXive 23.3.2010, 15:13 | ||||
На форуме SQL.ru посоветовали чуть-чуть видоизменить xsl файл, а именно: прописать в блоке <fo:block> название шрифта. Сделал вот таким образом:
Однако ситуация не изменилась в лучшую сторону. Однако, при этом сервер выдал в лог вот такое сообщение:
Что бы это могло значить? Проблемы с метриками шрифта? |
Автор: serger 24.3.2010, 10:43 |
У меня эта проблема точно лечилась. Помню, что генерил свои шрифты, увы более ничего. Увы не могу глянуть проект (было на прошлой работе). Проверьте, мож всё-таки не ту шрифт в итоге используете. |
Автор: ReFLeXive 24.3.2010, 15:29 | ||||||||
Сегодня утром до меня дошло, что нужно писать не название файла шрифта, а его triplet-name из конфигурации, т.е. по сути псевдоним шрифта( написал не arial, а Arial, как указано в triplet-name )! Сделал так и... о чудо! Заработало! Заговорил FOP по-русски! Это не может не радовать меня! ![]() Еще раз огромное спасибо за советы! Но еще всплывает вот такой момент: тестирование я проводил на тестовом проекте ( извиняюсь за тавтологию), теперь нужно ввести эту библиотеку (fop-0.95) в рабочий проект. ДЛя того, чтобы у клиентов нашего ПО не было возни со шрифтами у нас в старых версиях FOP каталог со шрифтами, метриками и конфигурационным файлом лежали прямо в самой библиотеке. То же самое и я хочу сделать. Делаю следующее: Создал каталог conf, в него поместил файл настроек fop.xconf, шрифты (arial, times) c их метриками. Затем этот каталог conf я поместил в jar-архив fop путем простого перетаскивания. Получилось что то вроде: fop.jar!/conf/ . В своем Java-классе для определения font-base я делаю следующее:
Эта команда задает font-base вот таким:
Путь, в принципе, верный! В конфигурации я поменял соответствующие пути до метрики и до самого файла со шрифтом таким образом:
По идее, относительный путь до arial.xml и arial.ttf должен определяться через font-base: <font-base>/arial.xml <font-base>/arial.ttf Однако, в консоли сервер выдает:
ПОдскажите пожалуйста, возможно ли обратиться к файлу шрифта внутри библиотеки? |
Автор: ReFLeXive 25.3.2010, 10:48 |
К счастью, на форуме SQL.ru мне подсказали как что сделать, поэтому проблема с русификацией FOP решена. Кому будет нужно, то можно нaйти ответ вот здесь: http://www.sql.ru/forum/actualthread.aspx?bid=38&tid=491835 Сейчас пока буду разруливать кучу ошибок в проекте. |
Автор: chemtech 8.2.2013, 19:21 | ||
ReFLeXive, Добрый день. Иду по вашим тропам в компиляции xml в FOP. Компилирую книгу https://launchpad.net/serverguide. У меня также появляются квадраты вместо русских букв. Можете помочь?
|