JasperReports 不显示中文问题及解决方案 您所在的位置:网站首页 word字体不显示中文 JasperReports 不显示中文问题及解决方案

JasperReports 不显示中文问题及解决方案

2023-07-06 05:37| 来源: 网络整理| 查看: 265

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 实验室设备网 版权所有