Jasperreports5.6支持PDF微软雅黑字体

Jasperreports5.6支持PDF微软雅黑字体

最近在开发需求时遇到一个问题,在打印标签时候要求,使用微软雅黑字体打印货物标签,在Jasperreports中使用微软雅黑字体显示正常,但是在浏览器中却不能正常显示

  • Jasperreport中显示如下
    在这里插入图片描述

  • 在浏览器中显示如下
    在这里插入图片描述
    默认值显示宋体,如果更换为其他字体则无法正常显示

网上解决PDF导出中文显示问题相关的文章很多,无非就是设置控件的pdf font name和pdf encoding属性,但是在5.6中都已经被弃用了(不推荐)。并且原来的解决方案还存在两个问题:(1)预览的字体通常不是STSong-Light, 这会导致预览字体与导出到PDF不一致。(2)当字符串中既有字母又有汉字的时候,导出的PDF可能莫名的换行。本文就介绍一种完美的解决方案,既保持一致性,也不会出现换行问题。
在这里插入图片描述

Pdf Font name is now deprecated. You should use a Font extension when using a not standard font. See Tools->Options->Fonts.	STSong-Light

根据这个提示猜测到可能需要安装字体

接下来就按照提示信息,下载所需的字体,我下载的是微软雅黑的
下载地址:https://download.csdn.net/download/weixin_43159039/12673117

接下来就是安装字体了
选择工具->选项->Fonts
在这里插入图片描述
选择刚刚下载的字体,点击下一步
在这里插入图片描述
选择粗体对应的字体文件
在这里插入图片描述
最终如下图
在这里插入图片描述
点击完成就安装完成了

安装完成之后就会在ireport项目fonts目录下出现字体文件
我的电脑目录为 D:\安装包\iReport-5.6.0\iReport-5.6.0\ireport\fonts,根据实际情况查看
我们会发现新增2个文件,然后irfonts.xml文件也发生了修改
里面的内容变为了

<?xml version="1.0" encoding="UTF-8"?>

<fontFamilies>

   <fontFamily name="&#24494;&#36719;&#38597;&#40657;">
       <normal><![CDATA[msyh.ttf]]></normal>
       <bold><![CDATA[msyhbd.ttf]]></bold>
       <pdfEncoding><![CDATA[Identity-H]]></pdfEncoding>
       <pdfEmbedded><![CDATA[true]]></pdfEmbedded>
   </fontFamily>

</fontFamilies>

此时只是在我们的ireport编辑器中生效
如果想在项目中使用就必须吧字体生成jar文件,放在项目的WEB-INF/lib文件夹下

选择iReport的安装目录,选择fonts目录,命令行切换到该目录,执行命令

 jar cf msyh.jar  * 

最快的方式则是直接在文件夹地址栏出入cmd
在这里插入图片描述
执行之后就在此文件下生成了一个msyh.jar
然后将此jar放入项目中

  • tomcat服务中直接放入 apache-tomcat/webapps/项目/WEB-INF/lib中
  • 如果是eclipse则直接放入/WEB-INF/lib 或者引入到classpath中就可以

存在问题

  • 使用此方法会导致原本的换行功能出现问题

如果你觉得以上特别步骤特别复杂,也可以直接使用我生成好的jar包
地址为:https://download.csdn.net/download/weixin_43159039/12673157

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值