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>
- JasperReport| JasperReport中使用自定义字体(font)
- JasperReport| JasperReport自定义ItemLabel
- JasperReport
- JasperReport
- JasperReport
- Jasperreport
- jasperreport
- jasperreport
- JasperReport
- JasperReport
- JasperReport
- JasperReport 导出PDF时使用其他字体
- JasperReport 导出PDF时使用其他字体
- JasperReport| JasperReport Studio操作(中)
- JasperReport报表自定义DataSource
- 如何在Spring中使用JasperReport
- 如何在Spring中使用JasperReport
- 如何在Spring中使用JasperReport
- 【Scikit-Learn 中文文档】高斯过程
- Drools7.5.0教程(5)-workbench规则开发与测试
- 在idea环境下搭建tensorflow环境
- nginx 安装 以及添加ldap模块
- Gson解析字符串
- JasperReport| JasperReport中使用自定义字体(font)
- [Python学习]Pycharm学习
- IO流总结(2)----字节流
- 基于矢量成果从影像提取中深度学习样本库
- TSMenuLabel 给UILabel加menuController的控件
- Java初识继承和多态
- 【Scikit-Learn 中文文档】交叉分解
- python 使用ThreadPool 创建线程,后台执行并check
- 【Scikit-Learn 中文文档 】安装 scikit-learn | ApacheCN