• 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对中文字体支持不友好,好像是每个版本或多或少都有类似的问题,那么针对其他版本也可以优先使用下上述方法,如果不好使,再考虑其他方法。如果其他朋友有类似的问题,欢迎留言,当然如果有解决方案,那更是扫榻相迎!

  • 相关阅读:
    【牛客刷题专栏】0x02:带头节点单链表实现C数据结构栈
    Web开发-GET与POST
    GoLang读写数据---上
    CLR via C#-CLR的执行模型
    C++ 在函数中定义函数
    实时可追溯性和事后可追溯性
    GUI编程--PyQt5--QLineEdit
    go——协程调度
    Vite介绍及实现原理
    Linux:CentOS7 开启路由转发
  • 原文地址:https://blog.csdn.net/weixin_43012300/article/details/127964007