JasperReport| JasperReport中使用自定义字体(font)

来源:互联网 发布:php pack 转换c 编辑:程序博客网 时间:2024/05/23 09:59

写在前面:
在网上看到很多关于ireport对JasperReport的操作,关于使用JasperReport Studio的相关资料很少.本文主要是使用JasperReport Studio操作来自定义字体然后在报表中使用.

操作坏境:
Windows10 64位

1.获取字体

Windows10系统C:\Windows\Fonts文件夹下字体,这里的字体都是TTC格式的合成字体.
由于在JasperReport中使用的字体格式是TTF字体,这里需要将TTC合成字体中提取出需要的TTF字体.TTC和TTF相关介绍和字体的提取见我的另外一篇文章.
TTF和TTC字体介绍

2.制作字体Jar包

这里以微软的雅黑字体TTC字体来提取TTF字体为例子:
雅黑的所有字体: 通过字体预览可以知道各种格式的雅黑字体.每一个TTC字体都可以展开成多个TTF字体.
msyh.ttc 雅黑
msyhl.ttc 雅黑高亮
msyhbd.ttc 雅黑加粗

msyh.ttc字体分解成了两个TTF的字体: (这个字体功能基本一致,具体可以看字体详情)
msyh001.ttf
msyh002.ttf

选中项目右键->Properties->搜font->Configure Workspace Settings
设置字体,注意在Bold,Italic…选项卡中可以设置字体相应对应的的ttf文件.

配置解释:
PDF Encoding : 配置该字体可以在生成PDF报表时候使用,尤其是在解决PDF中中文不显示问题,但是并不是所有的字体都是支持在PDF中显示中文的.

这里写图片描述

导出字体成jar包: Yves-雅黑.jar
这里写图片描述

3.使用字体

直接将导出生成的Yves-雅黑.jar加进工程的classpath既可.
然后在工程知直接使用.

这里写图片描述

PS:有时候当我们需要自己定义多个字体的的时候,不想像上面一样每一个字体都生成一个Jar包.这里我们使用配置的方式来完成自定义多个字体.
首先用上面的方式生成一个字体的jar包.然后修改jar包中的配置文件.

在配置文件fontsfamilyXXXXX.xml中可以看见其配置,每一个fontFamily 标签下的设置代表一个字体,name属性代表配置字体的显示名称.配置完成后将相应的字体文件按照路径fonts/Yves_雅黑/msyh001.ttf存放既可.

<?xml version="1.0" encoding="UTF-8"?><fontFamilies>    <fontFamily name="Yves-雅黑">        <normal><![CDATA[fonts/Yves_雅黑/msyh001.ttf]]></normal>        <pdfEncoding><![CDATA[Identity-H]]></pdfEncoding>        <pdfEmbedded><![CDATA[true]]></pdfEmbedded>        <exportFonts/>    </fontFamily></fontFamilies>
原创粉丝点击