Проблема
Есть SLES, на нем установлен Tomcat, на котором крутится Birt Report Viewer. На последнем задеплоен отчет, используемый для генерации pdf-файлов, содержащих русский текст. Проблема заключается в том, что русские символы в отчете выгружаются моноширинным шрифтом, причем вне зависимости от того, какой шрифт указан в самом отчете (Calibri, Arial или просто sans-serif).
Решение
Устанавливаем пакет msttcorefonts (http://software.opensuse.org/download.html?project=home%3Acsa7fff%3Aadei&package=msttcorefonts), он распакует в /usr/share/fonts/msttcorefonts некоторый набор TrueType-шрифтов.
Следующая задача - указать Birt'у на эту папку. Делается это путем правки файла WEB-INF/lib/org.eclipse.birt.runtime_4.5.0.jar/fontsConfig.xml. Этот файл содержит блок <font-paths> с перечнем путей, по которым birt ищет шрифты. Все имеющиеся там записи можно удалить, и добавить одну новую:
<path path="/usr/share/fonts/msttcorefonts" />Вуаля, шрифты, которые есть в папке /usr/share/fonts/msttcorefonts, можно использовать в отчетах.
ЗЫ Вообще, в файлах fontsConfig.xml, fontsConfig_pdf.xml и fontsConfig_linux.xml есть и другие настройки, которые могут оказаться полезными: например, можно выбрать, какой шрифт будет использоваться при указании семейства "serif", указать fallback-шрифт, используемый, когда для символа невозможно найти глиф в указанном шрифте (<composite-font name="all-fonts" ... />) и пр.