Jasper report не может загрузить японский текст с некоторыми шрифтами - PullRequest
0 голосов
/ 09 ноября 2019

Мне нужно распечатать отчет в формате PDF из Java-приложения (Spring boot), который может отображать японские символы, а при смене шрифта - правильно отображать шрифт. Мое приложение, использующее jasperreports-fonts-6.10.0.jar и настроенное в jasperreports_extension.properties, настроено следующим образом:

net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
# font.xml place
net.sf.jasperreports.extension.simple.font.families.myfont=fonts/fonts.xml

и в файле fonts / fonts.xml настроено следующим образом:

<fontFamily name="Meiryo UI">
    <normal>fonts/Meiryo UI.ttf</normal>
    <pdfEncoding>Identity-H</pdfEncoding>
    <pdfEmbedded>true</pdfEmbedded>
    <exportFonts>
    </exportFonts>
</fontFamily>
<fontFamily name="Tahoma">
    <normal>fonts/tahoma.ttf</normal>
    <bold>fonts/tahomabd.ttf</bold>
    <pdfEncoding>Identity-H</pdfEncoding>
    <pdfEmbedded>true</pdfEmbedded>
<fontFamily name="MS UI Gothic">
    <normal>fonts/msgothic.ttc</normal>
    <pdfEncoding>Identity-H</pdfEncoding>
    <pdfEmbedded>true</pdfEmbedded>
</fontFamily>
<fontFamily name="Times New Roman">
    <normal>fonts/times.ttf</normal>
    <pdfEncoding>Identity-H</pdfEncoding>
    <pdfEmbedded>true</pdfEmbedded>
</fontFamily>

и в коде Java:

myReport.getDefaultStyle().setPdfFontName(newfontReport); // newfontReport is setting in DB

Все вышеперечисленные шрифты существуют в ресурсе веб-приложения. Но в отчете с «Meiryo UI» отображается только текст на японском и правильный текст. Другие шрифты (например: «Times New Roman»), в нем отображаются только текстовые части английского языка, японские текстовые части являются невидимыми.

...