JasperReports 不显示中文问题及解决方案 | 您所在的位置:网站首页 › word字体不显示中文 › JasperReports 不显示中文问题及解决方案 |
1、问题描述
使用 JasperStudio 设计报表,并 Export as pdf 时,中文信息正确显示; 使用 JasperReport 生成报表时,中文信息无法显示; 其根本原因,是 JasperReport 报表引擎没有找到模板中指定的字体,比如模板中有个 Static Text 组件,如下: 这是一个静态文本组件,使用的中文字体为 simfang。 点击组件,可查看其属性信息: 可以在属性编辑栏中,对中文字体信息进行更改,比如改为 宋体、黑体 等。 JasperStudio 内置了一些字体,可以在 Font 列表中查看: 但是这些字体,有些能用来生成 pdf 文件,有些不能;比如使用 微软雅黑 字体,生成的 PDF 报表,中文信息能正常显示,但是使用 隶书 、微软雅黑 UI、宋体 等字体时,生成的 PDF 文件,中文信息缺失。当然,生成的 HTML 报表,一般都是没有问题的。 这种情况下,就需要添加特定的字体 font,来实现在 pdf 报表中显示中文信息。 2、添加字体到 JasperStudio 中 1、下载或生成所需字体的 .tff 文件:windows 系统中,Windows -> Fonts目录中,有很多的字体文件: 有些时 ttc 格式,有些是 ttf 格式,比如微软雅黑就是 .ttc 格式的文件。需要使用转换工具将其转换为 .ttf 文件。 ttc 转 ttf 在线工具 2、在 JasperStudio 中添加字体文件右击 project 节点,查看 properties -> Fonts,添加新的字体类型,例如下图中的 simfang,仿宋: 添加后,就可以在文本属性中使用新的字体类型了。.jrxml 文件中,如下: 3、添加多种新字体添加多种字体:微软雅黑,宋体,楷体,黑体,行书等,如下: 在 JasperStudio 中,创建示例: 对应的 detail 栏的内容,如下: 在 Preview 窗口,执行 Export as PDF,可以导出 pdf 文件,能够正确的显示出中文信息: 这样的话,说明 JasperStudio 中的字体已经没有问题了。这样,可以在 JasperStudio 中设计报表模板,并根据模拟数据进行报表演示了。 但是当 JasperReport 根据给定的报表模板生成报表时,怎么获取到扩展的字体信息呢? 3、JasperReport 使用扩展字体 1、在 JasperStudio 中将扩展字体集,导出为 fonts.jar 文件:生成的 jar 文件中,包含了字体的详细信息(ttf 文件和 meta 信息),可供 JasperReport 引擎使用! 2、将 fonts.jar 文件添加到 java 项目中:可以将 fonts.jar 发布到项目仓库中,也可以通过 lib 的形式添加;只要保证 fonts.jar 在项目的 classpath 中即可! 我放到在resources下面 然后点击鼠标右键 然后就可以导出中文就不会缺失了。 备注: 默认情况下,当没有数据源信息存在于一个报告,JR不产生页面。另一个选项(可以在报告的whenNoDataType属性中设置)将打印除之外的所有报告部分。此报告包含详细信息部分,但仅包含一些静态数据。为确保本节也将被打印,最简单的方法是提供一个空数据源,其中包含一个空记录。 ———————————————— 版权声明:本文为CSDN博主「墨城之左」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/antony1776/article/details/116534431 |
CopyRight 2018-2019 实验室设备网 版权所有 |