码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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.2,jaspersoft studio使用的版本是6.18.1,截图如下:
    在这里插入图片描述
    在这里插入图片描述
    解决方案:
    1.首先在项目资源文件目录下新建目录fonts
    在这里插入图片描述
    2.其次fonts目录新建两个文件:fonts.xml 和 STSONG.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对中文字体支持不友好,好像是每个版本或多或少都有类似的问题,那么针对其他版本也可以优先使用下上述方法,如果不好使,再考虑其他方法。如果其他朋友有类似的问题,欢迎留言,当然如果有解决方案,那更是扫榻相迎!

  • 相关阅读:
    笔记50:正则表达式入门宝典
    Vue2.0开发之——loader打包处理less文件(07)
    应用地球物理+AI:智能地球勘探
    记一次有意思的 SQL 实现 → 分组后取每组的第一条记录
    前端实战|React18极客园——发布文章模块(切换单/三/无图、暂存图片列表)
    嵌入式学习:使用vscode配置esp32环境(从安装到测试)
    MySQL的结构化语言 DDL DML DQL DCL
    揭秘老外聊天时常用的英文缩写
    irun和vcs工具,检测TB环境零延时无限循环以及zero-delay组合逻辑
    LaTeX学习笔记
  • 原文地址:https://blog.csdn.net/weixin_43012300/article/details/127964007
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号