Jasperreports6.4.1+Jaspersoft studio6.4.1进行报表开发实战教程-PDF中文显示

本文介绍如何解决JasperReports 6.4.1版本在生成PDF报表时无法正常显示中文的问题。通过配置jasperreports_extension.properties文件及fonts.xml文件,并使用特定字体,实现了中文的正确展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Jasperreports6.4.1 在进行开发时,中文不能显示。

本文主要参考:http://blog.youkuaiyun.com/pigdreams/article/details/60147949 这篇博文,但是在用java生成pdf报表时方法不太一样

java工程中主要是用gradle,所以没有修改jar文件,而是参考了Jasperreport开发公司官网Jaspersoft community Project包中的demo,sample-》fonts

这个demo

废话不多说,贴图上代码:

工程的结构如下


jasperreports_extension.properties文件内容如下:

net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.lobstertwo=stsong/fonts.xml
fonts.xml问价内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<fontFamilies>

	<!--<fontFamily name="Lobster Two">-->
		<!--<normal>lobstertwo/LobsterTwo-Regular.otf</normal>-->
		<!--<bold>lobstertwo/LobsterTwo-Bold.otf</bold>-->
		<!--<italic>lobstertwo/LobsterTwo-Italic.otf</italic>-->
		<!--<boldItalic>lobstertwo/LobsterTwo-BoldItalic.otf</boldItalic>-->
		<!--<pdfEncoding>Identity-H</pdfEncoding>-->
		<!--<pdfEmbedded>true</pdfEmbedded>-->
		<!--<!–-->
		<!--<exportFonts>-->
			<!--<export key="net.sf.jasperreports.html">'Lobster Two', 'Times New Roman', Times, serif</export>-->
		<!--</exportFonts>-->
		<!--–>-->
	<!--</fontFamily>-->
	<fontFamily name="华文宋体">
		<normal>stsong/stsong.TTF</normal>
		<bold>stsong/stsong.TTF</bold>
		<italic>stsong/stsong.TTF</italic>
		<boldItalic>stsong/stsong.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>
		<!--
        <locales>
            <locale>en_US</locale>
            <locale>de_DE</locale>
        </locales>
        -->
	</fontFamily>

</fontFamilies>



评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值