Диакритические символы в шаблоне отчета Jasper - PullRequest
4 голосов
/ 05 января 2012

Я должен использовать польский язык, чтобы заполнить содержимое моего отчета, поэтому я должен использовать диакритические знаки (ą, ć, ę, ł, ó, ż, ź). И у меня есть проблема с ними, они пропускаются после экспорта печати яшмы на выход. Когда я пишу в шаблоне "lubię żółwie" (на польском языке означает «я люблю черепах»), выходной pdf содержит только "lubi wie" (кстати, это означает «ему нравится, что он знает» - поэтому он сильно меняется;)). Даже нет пустых мест вместо пропущенных букв. Они просто пропущены.

Дополнительный совет: не имеет значения, являются ли эти строки статическим текстом в отчете или динамическим $P{}

Мой вопрос: «Как заставить их появиться»?

Я пытался (без успеха):

  1. Используя метод setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8") из JRPdfExporter
  2. Настройка JRProperties.setProperty("net.sf.jasperreports.default.pdf.encoding", "UTF-8");
  3. Настройка JRProperties.setProperty("net.sf.jasperreports.export.character.encoding", "UTF-8");
  4. Помещение REPORT_LOCALE в карту параметров (JasperFillManager.fillReport)

РЕШЕНИЕ : Выяснилось, что в моем случае достаточно присоединить шрифт к пути к классу, определить собственные jasperreports_extension.properties и fonts.xml. Подробности здесь . Если кто-то использует Grails Framework для этого (как и я), здесь - более точный пример. Дополнительным и обязательным шагом является установка JRProperties.setProperty("net.sf.jasperreports.default.pdf.encoding", "Cp1250"), как писал Войтек. Пока не знаю почему, но я обновлю решение, когда узнаю ответ.

1 Ответ

2 голосов
/ 05 января 2012

Если вы работаете на компьютере с Windows:

Внутри вашего JasperReports jar-архива вы найдете файл конфигурации с именем default.jasperreports , откройте его и измените значение следующего свойства следующим образом:

net.sf.jasperreports.default.pdf.encoding=Cp1250

Вы также можете использовать:

JRProperties.setProperty("net.sf.jasperreports.default.pdf.encoding", "Cp1250")

но я думаю, что первое решение чище. Также убедитесь, что pdf шрифт вашего поля поддерживает диакритические знаки, как заметил Алекс К. AFAIK эти шрифты выделены в выпадающем списке выбора шрифтов.

Если вы хотите использовать в своем отчете шрифты UTF-8 , вам сначала нужно поместить их в путь к классам и включить их явно.

...