我在基于 spring boot 的项目中使用动态 jasper 我想添加和使用pdf字体。
resource/font/SomeFont/SomeFont.ttf
将ttf文件放在上面的路径下,添加到
resources/font/fonts.xml
fonts.xml 并放置有关路径和编码值的信息,如下所示。
<fontFamilies>
<fontFamily name="SomeFont">
<normal><![CDATA[font/SomeFont/SomeFont.ttf]]></normal>
<pdfEncoding><![CDATA[UniKS-UCS2-H]]></pdfEncoding>
<pdfEmbedded><![CDATA[true]]></pdfEmbedded>
<exportFonts/>
</fontFamily>
</fontFamilies>
资源不足
jasperreports_extension.properties,直接取自jasperReport。
net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.fonts=font/fonts.xml
通过添加上面的值,jasperReport 可以识别 SomeFont.ttf 字体文件并尝试设置 pdf 字体,但无法读取它。
有了上面的设置,Jasper Reports不应该能够在构建过程中根据spring boot资源中的jasperreports_extension.properties的值将字体值SomeFont添加到fonts.xml,并使用Jasper将SomeFont添加到setPdfFontName方法打印?
这是我的 build.gradlejasper 依赖项
implementation 'ar.com.fdvs:DynamicJasper:5.3.8'
implementation 'com.lowagie:itext:2.1.7'