Я должен использовать польский язык, чтобы заполнить содержимое моего отчета, поэтому я должен использовать диакритические знаки (ą, ć, ę, ł, ó, ż, ź). И у меня есть проблема с ними, они пропускаются после экспорта печати яшмы на выход. Когда я пишу в шаблоне "lubię żółwie"
(на польском языке означает «я люблю черепах»), выходной pdf содержит только "lubi wie"
(кстати, это означает «ему нравится, что он знает» - поэтому он сильно меняется;)). Даже нет пустых мест вместо пропущенных букв. Они просто пропущены.
Дополнительный совет: не имеет значения, являются ли эти строки статическим текстом в отчете или динамическим $P{}
Мой вопрос: «Как заставить их появиться»?
Я пытался (без успеха):
- Используя метод
setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8")
из JRPdfExporter
- Настройка
JRProperties.setProperty("net.sf.jasperreports.default.pdf.encoding", "UTF-8");
- Настройка
JRProperties.setProperty("net.sf.jasperreports.export.character.encoding", "UTF-8");
- Помещение REPORT_LOCALE в карту параметров (
JasperFillManager.fillReport
)
РЕШЕНИЕ : Выяснилось, что в моем случае достаточно присоединить шрифт к пути к классу, определить собственные jasperreports_extension.properties и fonts.xml. Подробности здесь . Если кто-то использует Grails Framework для этого (как и я), здесь - более точный пример. Дополнительным и обязательным шагом является установка JRProperties.setProperty("net.sf.jasperreports.default.pdf.encoding", "Cp1250")
, как писал Войтек. Пока не знаю почему, но я обновлю решение, когда узнаю ответ.