У меня есть приложение Java, которое генерирует JasperReports. Он будет создавать до трех JasperPrints из одного отчета: один печатается на принтере, один сериализуется и сохраняется в базе данных, а третий экспортируется в PDF с помощью встроенной функции экспорта Jasper.
Проблема заключается в том, что при экспорте в PDF символы, содержащие 8 или более бит (т.е. не 7-битный ASCII), отображаются в виде пустых квадратов, что означает, что Acrobat Reader не может отображать этот символ. Версия для печати правильная, и загрузка версии базы данных и ее печать отображаются правильно. Если я изменю экспортированную версию PDF на другой формат, например, XML, символ хорошо отображается в веб-браузере.
Основываясь на доказательствах, я считаю, что проблема связана с обработкой шрифтов в PDF-файлах, но я не уверен, что именно.
Используемый шрифт Lucida Sans Typewriter, моноширинный шрифт Unicode. Каталог «шрифтов» Windows указан в classpath Java: без этого шага экспорт PDF с треском проваливается с нулевым текстом вообще, поэтому я знаю, что он находит шрифт.
Конкретные символы, которые не отображаются, являются акцентированными символами, используемыми в испанском тексте: á
, é
, í
, ó
и ú
. Я не проверил ñ
, но, думаю, это тоже не сработает.
Есть идеи, в чем проблема, какие области системы нужно проверить, или, может быть, параметры, которые мне нужно отправить в процесс экспорта?