您的位置:首页 > 编程语言 > ASP

Jasperreports6.3.1+Jaspersoft studio6.3.1进行报表开发实战教程(七)

2017-03-04 10:18 337 查看


解决PDF无法显示中文问题


PDF生成预览无法显示中文

相信有同学已经发现了,当预览生成为PDF时,会发现一个非常严重的问题,那就是只显示英文与数字,中文完全无法显示。如下图。 


 

选择用PDF预览,会打开电脑上安装的PDF查看软件。 


 


 

生成的PDF文件中,所有中文都无法显示,这是模板预览生成的PDF文件,如果用Java工程生成相信也是一样无法看到中文,这跟我们想要的效果明显不符。


解决Jaspersoft studio生成PDF预览无法查看中文的问题

我们的模板设计软件Jaspersoft studio是可以选择字体,如果我们选择一个中文字体,会不会可以在预览中看到中文呢?注意,这里只是针对于Jaspersoft studio的预览查看,并不适用于Java工程中代码生成PDF无法显示中文问题。


我们选择一个中文字体试试


 

很奇怪的地方是上面的六个字体样式与下面的字体样式有一个明显的分隔线,它们有什么不同吗?这就是我们要讲解的重点。 

上面的六个字体样式明显没有中文字体,那我们只好选择下面的字体了。 

将语文的字体设为微软雅黑,再看看预览是否有效果。 


 

源码里的描述如下: 


 

生成预览 


 

语文依然没有显示,这个方法无效果。


fonts字体包的作用

在工程目录,有三个自动导入的项目包,如下图,一个是Java JRE,其余两个都是Jasperreport工程相差的包 


 

我们的重点是JasperReports Library里面的fonts字体包,展开该Jar包。 


 

里面放置了许多.ttf字体文体,而这些字体的名称与模板的选择字体框上方的字体基本一致。 


 

由此可以大胆猜测,这个fonts包里放的字体就是模板实际用于生成文件所用的字体,我们在模板里选择的字体在源码中可以看到是一个标签”fonts-name=dejavvu..”,当Jasperreports解析模板文件时,会根据这个字体的名字然后去fonts字体包中查找对应的字体,如果用就使用该字体,如果没有就使用一个默认的字体。


在Jaspersoft studio中导入中文字体.ttf文件

我们可以在studio中导入一个中文字体,来实现pdf预览可查看中文的效果。


1.打开选项设置,preferences




2.选中Fonts选项




3.点击Add,添加字体




4.设置字体名字

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐