Экспорт 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.
Я использую отчет Jasper 6, моя команда потратила несколько дней на отображение кхмерского Юникода. Я нашел решение, наконец, и все работает, как ожидалось.
следуйте за этим https://community.jaspersoft.com/wiki/custom-font-font-extension
после экспорта загрузите файл jar в папку lib и перезапустите сервер jasper.