Сначала убедитесь, что у вас правильная кодировка:
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");
Тогда вам следует заменить шрифты на те, которые поддерживают кириллицу. Это делается с помощью стилей:
public void addPdfFontsToStyles(JRStyle[] styles) {
if (styles != null) {
for (JRStyle style : styles) {
if (style.getName().equals("reportStyle")) {
style.setPdfFontName("/com/yourcompany/fonts/times.ttf");
style.setBlankWhenNull(true);
}
if (style.getName().equals("reportBoldStyle")) {
style.setPdfFontName("/com/yourcompany/fonts/timesbd.ttf");
style.setBlankWhenNull(true);
}
}
}
}
И вызвать этот метод с addPdfFontsToStyles(jasperReport.getStyles());
Конечно, предварительные условия:
- ваш текст использует одно из названий стилей выше
- у вас есть файлы ttf на пути к классам
Это должно сделать (я беру код из работающего кириллического приложения)