Я следовал всем примерам, которые смог найти в Интернете, чтобы встроить шрифт OTF в сгенерированный PDF-файл, но это не сработало. Я создал расширение шрифта .jar с помощью iReport (я также создал maven jar для шрифтов вручную), но оно не работает со шрифтами OTF. Я также убедился, что файл jasper-fonts-extension.jar находится в пути к классам. Я знаю это, потому что когда я заменяю этот шрифт другими шрифтами TTF, он просто работает.
Я бегу дальше -
Jasper Reports & iReport Version : 4.7.1
Oracle Java SDK 7
Ubuntu 12.04
Шрифт, который я пытаюсь встроить в PDF — Myraid Pro (OTF)
Мой fonts.xml выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
<fontFamily name="Myriad Pro">
<normal><![CDATA[fonts/MyriadPro-Regular.otf]]></normal>
<bold><![CDATA[fonts/MYRIADPRO-BOLD.OTF]]></bold>
<italic><![CDATA[fonts/MYRIADPRO-CONDIT.OTF]]></italic>
<boldItalic><![CDATA[fonts/MYRIADPRO-BOLDIT.OTF]]></boldItalic>
<pdfEmbedded><![CDATA[true]]></pdfEmbedded>
</fontFamily>
<fontFamily name="Myriad Pro Lite">
<normal><![CDATA[fonts/MYRIADPRO-COND.OTF]]></normal>
<pdfEmbedded><![CDATA[true]]></pdfEmbedded>
</fontFamily>
</fontFamilies>
Это работало с другими шрифтами TTF, но когда я переключаюсь на шрифты MyraidPro, я получаю следующую ошибку
Exception in thread "main" java.lang.ExceptionInInitializerError
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:121)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:88)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:103)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:61)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:153)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:122)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:464)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:861)
at com.qedrix.formbuilder.pojo.JsonForm.main(JsonForm.java:141)
Причина: net.sf.jasperreports.engine.util.JRFontNotFoundException: шрифт fonts/MyriadPro-Regular.otf недоступен для JVM.
Я также выполнил шаги, указанные в следующей ссылке: здесь
Если это как-то связано со шрифтами OTF, мне интересно, почему это не работает при экспорте PDF в Java, хотя работает в Режим просмотра iReport?