Monday, July 12, 2010

Русские шрифты при генерации PDF в JasperReport

Пришло время создавать отчетность по протекающим бизнес-процессам в Intalio. Для этих целей было принято решение использовать JasperReport. Одно из самых основных наших требований при выборе системы отчетности было: Open Source, SOAP. Набросать отчет не составило труда, но хотелось бы еще его импортировать в PDF. С этим появились трудности, т.к. русских шрифтов в пакете нету.

Покопавшись пару часов разобрался как подключить шрифты и к iReport и к JasperServer.
Требуется настройка как iReport так и JasperServer.

Подключение шрифтов к iReport

1 Копируем нужные нам шрифты например в папку c:\Fonts
2 Включаем папку c:\Fonts в CLASSPATH iReport'а (см. рисунок ниже)

2.1 Выбираем Меню Tools->Options
2.2 Выбираем вкладку CLASSPATH
2.3 Добавляем папку - кнопка Add Folder
3 Теперь надо перейти на вкладку Fonts (см. рисунок ниже)
3.1 Для того чтобы мы могли использовать шрифты из подключенной папки надо поставить галочку напротив c:\Fonts в окне PDF fonts path (Deprecated, Install True Type fonts instead)
4 Вуаля! Теперь можно использовать русские шрифты в iReport (данные шрифты будут доступны для свойства PDF Font name is now deprecated. You should use a Font Extension when using a not standart font. См. рисунок ниже)

Настройка JasperServer для работы с русскими шрифтами
Как ни странно тут все очень просто. Необходимо скопировать шрифты из папки c:\Fonts в [JasperServer folder]/apache-tomcat/webapps/jasperserver/WEB-INF/classes

Для успокоения души можно перезагрузить JasperServer.
Теперь можно использовать русские шрифты.

Ссылки на другие инструкции по подключению шрифтов:
http://mdahlman.wordpress.com/2009/05/13/fonts-in-jasperserver/
http://mdahlman.wordpress.com/2010/04/16/fonts-in-jasperserver-3-7/

1 comment:

  1. Уважаемый, а о правилах хорошего тона Вас не учили, если статья не Ваша - просьба размещать ссылки на места, откуда вы ее взяли. В данном случае либо из http://evgenypopov.blogspot.com, либо из www.bpmylife.ru. Если ситуация не изменится - буду вынужден сообщить в администрацию blogspot'a

    ReplyDelete