Экспорт JasperReport в PDF, символы отсутствуют

у меня есть приложение Java, которое генерирует JasperReports. Он создаст целых три JasperPrints из одного отчета: один печатает на принтере, один сериализуется и сохраняется в базе данных, а третий экспортируется в PDF с помощью встроенной возможности экспорта Jasper.

проблема в том, что при экспорте в PDF символы, содержащие 8 или более бит (т. е. не 7-битный ASCII), отображаются как пустые квадраты, то есть Acrobat Reader не может отображать это характер. Версия печати верна, и загрузка версии базы данных и ее печать отображаются правильно. Если я изменю экспортированную версию PDF на другой формат, например XML, символ будет отображаться в веб-браузере.

основываясь на доказательствах, я считаю, что проблема связана с обработкой шрифтов в PDF-файлах, но я не уверен, что именно.

используемый шрифт-Lucida Sans Typewriter, шрифт Unicode monospaced. Каталог "шрифт" Windows указан в Java classpath: без этого шага экспорт PDF терпит неудачу с нулевым текстом вообще, поэтому я знаю, что он находит шрифт.

конкретные символы не отображаются акцентированные символы, используемые в тексте на испанском языке:á, é, í, ó и ú. Я не проверял ñ но я предполагаю, что это тоже не сработает.

любые идеи в чем проблема, области системы для проверки или, может быть, параметры, которые мне нужно отправить в процесс экспорта?

3 ответов


кодировка PDF, используемая для экспорта, была UTF-8, и, по-видимому, шрифт не поддерживал это должным образом. Когда я изменил его на ISO-8859-1, каждый символ появился правильно в выводе PDF.


в iReport попробуйте установить Pdf Embedded свойство ваших текстовых полей true.


Я использую отчет Jasper 6, моя команда потратила несколько дней на отображение кхмерского Юникода. Я нашел решение, наконец, и все работает, как ожидалось.

следуйте за этим https://community.jaspersoft.com/wiki/custom-font-font-extension

после экспорта загрузите файл jar в папку lib и перезапустите сервер jasper.