JasperReports вызывает JRFontNotFoundException в случае, когда шрифт, используемый внутри шаблона отчета, не доступен для JVM в качестве системного шрифта или шрифта, полученного из расширения шрифта JR. Это гарантирует, что все проблемы, вызванные несоответствиями метрики шрифта, будут у нас заблаговременно предупреждены о несоответствии.
Jasper reports пытается помочь вам в разработке вашего отчета, заявив, что он не может правильно экспортировать ваш отчет, так как не может найти шрифт, определенный в TextField
или StaticText
<font fontName="Arial"/>
Да, вы можете отключить , установив net.sf.jasperreports.awt.ignore.missing.font в false, но у вас будет несоответствия экспорта .
Да, вы можете установить шрифт как системный шрифт JVM (но вы должны делать это на каждом компьютере, который может генерировать отчет, и у вас все еще могут быть проблемы с кодировкой ).
Правильный путь!
Используйте Расширения шрифтов ! , если вы хотите создать свой собственный (см. Ссылку ниже), отчеты jasper также распространяют jar-файл расширения шрифта по умолчанию (jasperreports-fonts-x.x.x.jar
), который поддерживает fontName DejaVu Sans
, DejaVu Serif
и DejaVu Sans Mono
<font fontName="DejaVu Sans"/>
Из окончательного руководства по JasperReport:
Мы настоятельно рекомендуем людям использовать только шрифты, полученные из шрифта.
расширения, потому что это единственный способ убедиться, что шрифты
будет доступно приложению, когда отчеты будут выполнены в
во время выполнения. Использование системных шрифтов всегда сопряжено с риском для отчетов.
работать правильно при развертывании на новой машине, которая может не иметь
эти шрифты установлены
Ссылки на StackOverflow о том, как правильно отображать шрифты в pdf
Контрольный список того, как правильно отображать шрифт в формате pdf
Создание расширений шрифтов с помощью JasperSoft Studio
Создание расширений шрифтов с помощью iReport