900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > JasperReport报表导出PDF中文不显示的问题

JasperReport报表导出PDF中文不显示的问题

时间:2021-11-23 13:12:23

相关推荐

JasperReport报表导出PDF中文不显示的问题

首先在JasperReport Studio中加载下载好的中文字体:打开设置页面: Window >> Preferences >> Jaspersoft Studio >> Fonts,点击 Add 添加字体,FamilyName中命名新添加字体名称,TrueType中选择下载的字体文件(.ttf文件),PDF Encoding中选择PDF中中文字体编码格式。

这时Studio的字体下拉框中就有了我们添加的字体。将我们报表中的中文字体设置为“华文宋体”或“微软雅黑”。

我们的web工程中引入了JasperReport相关jar包:

<dependency>

<groupId>net.sf.jasperreports</groupId>

<artifactId>jasperreports</artifactId>

<version>6.9.0</version>

</dependency>

<dependency>

<groupId>net.sf.jasperreports</groupId>

<artifactId>jasperreports-fonts</artifactId>

<version>6.9.0</version>

</dependency>

这时我们要对jasperreports-fonts依赖的jar包进行更改,加入我们下载的字体文件。

使用解压软件打开jasperreports-fonts.far,逐层找到dejavu文件夹和fonts.xml文件。打开dejavu文件夹,将我们下载的ttf文件拖入其中。将fonts.xml文件复制出来进行更改。

在fonts.xml中<fontFamilies>标签内加入如下代码,保存后复制到jar包中替换原来的fonts.xml文件。

<fontFamily name="华文宋体">

<normal>net/sf/jasperreports/fonts/dejavu/HuaWenSongTi.ttf</normal>

<bold>net/sf/jasperreports/fonts/dejavu/HuaWenSongTi.ttf</bold>

<italic>net/sf/jasperreports/fonts/dejavu/HuaWenSongTi.ttf</italic>

<boldItalic>net/sf/jasperreports/fonts/dejavu/HuaWenSongTi.ttf</boldItalic>

<pdfEncoding>Identity-H</pdfEncoding>

<pdfEmbedded>true</pdfEmbedded>

<exportFonts>

<export key="net.sf.jasperreports.html">'华文宋体', Arial, Helvetica, sans-serif</export>

<export key="net.sf.jasperreports.xhtml">'华文宋体', Arial, Helvetica, sans-serif</export>

</exportFonts>

</fontFamily>

<fontFamily name="微软雅黑">

<normal>net/sf/jasperreports/fonts/dejavu/WeiRuanYaHei.ttf</normal>

<bold>net/sf/jasperreports/fonts/dejavu/WeiRuanYaHei.ttf</bold>

<italic>net/sf/jasperreports/fonts/dejavu/WeiRuanYaHei.ttf</italic>

<boldItalic>net/sf/jasperreports/fonts/dejavu/WeiRuanYaHei.ttf</boldItalic>

<pdfEncoding>Identity-H</pdfEncoding>

<pdfEmbedded>true</pdfEmbedded>

<exportFonts>

<export key="net.sf.jasperreports.html">'微软雅黑', Arial, Helvetica, sans-serif</export>

<export key="net.sf.jasperreports.xhtml">'微软雅黑', Arial, Helvetica, sans-serif</export>

</exportFonts>

</fontFamily>

此时将JasperReport Studio中设计好的jasper文件导入我们的项目中然后启动,JasperReport报表导出的PDF中已经可以正常显示中文了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。