• jasperreports6.12.2 could not load the following font解决方法


    jasperreports通过Java代码生成PDF的时候不能获取中文字体,报错提示如下:
    在这里插入图片描述

    net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font: 
    pdfFontName: STSong-Light
    pdfEncoding: Identity-H
    isPdfEmbedded : true
    
    • 1
    • 2
    • 3
    • 4

    本次环境:jasperreports使用的版本是6.12.2jaspersoft studio使用的版本是6.18.1,截图如下:
    在这里插入图片描述
    在这里插入图片描述
    解决方案:
    1.首先在项目资源文件目录下新建目录fonts
    在这里插入图片描述
    2.其次fonts目录新建两个文件:fonts.xmlSTSONG.TTF
    fonts.xml 内容如下:

    
    <fontFamilies>
        <fontFamily name="SansSerif">
            <normal>fonts/STSONG.TTFnormal>
            <pdfEncoding>Identity-HpdfEncoding>
            <pdfEmbedded>truepdfEmbedded>
            <exportFonts>
                <export key="net.sf.jasperreports.html">'华文宋体', Arial, Helvetica, sans-serifexport>
                <export key="net.sf.jasperreports.xhtml">'华文宋体', Arial, Helvetica, sans-serifexport>
            exportFonts>
        fontFamily>
    fontFamilies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    STSONG.TTF字体文件,内容如下:(该字体可以在网上下载)
    在这里插入图片描述
    3.接着在项目资源文件目录下新建文件jasperreports_extension.properties
    在这里插入图片描述
    jasperreports_extension.properties内容如下:
    配置文件第一行内容可以注释掉,不影响!

    #net.sf.jasperreports.awt.ignore.missing.font=true
    net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
    net.sf.jasperreports.extension.simple.font.families.lobstertwo=fonts/fonts.xml
    
    • 1
    • 2
    • 3

    最后重新启动项目进行验证就成功了,既没有报错,PDF文件也生成了!
    总结:jasperreports对中文字体支持不友好,好像是每个版本或多或少都有类似的问题,那么针对其他版本也可以优先使用下上述方法,如果不好使,再考虑其他方法。如果其他朋友有类似的问题,欢迎留言,当然如果有解决方案,那更是扫榻相迎!

  • 相关阅读:
    ajax点击显示更多实例(静态更新)
    10 基于Dubbo 配置实战
    QT里使用sqlite的问题,好多坑
    C++ 产生随机数函数
    争议不断的AI绘画,靠什么成为了顶流?
    REST-Framework: 认证组件 | token的介绍和使用
    递归神经网络 (RNN)
    安装OpenGL
    视频目标语义分割自动标注——从图像轮廓提取到转成json标签文件
    阿里云OSS图床搭建方法
  • 原文地址:https://blog.csdn.net/weixin_43012300/article/details/127964007