Jasper reports 亚洲人和亚洲人

Jasper reports 亚洲人和亚洲人,jasper-reports,dynamic-jasper,asianfonts,Jasper Reports,Dynamic Jasper,Asianfonts,我的PDF是由DynamicJasper生成的,现在看起来与预期完全一样,我只面临一个问题:生成的PDF中根本不显示亚洲字符。任何其他角色都可以。我可以在调试器中验证字符串是否正确地放置在JRDataSource中,Jasper确实在报告中为它们生成了行,但是文本本身完全丢失了 将DynamicJasper与亚洲文本元素一起使用时,是否需要考虑一些其他编码设置 感谢您的建议和问候您可能需要将jasper report exporter配置为在pdf文件中嵌入特殊字体。同时检查pdf字符编码好的,

我的PDF是由DynamicJasper生成的,现在看起来与预期完全一样,我只面临一个问题:生成的PDF中根本不显示亚洲字符。任何其他角色都可以。我可以在调试器中验证字符串是否正确地放置在JRDataSource中,Jasper确实在报告中为它们生成了行,但是文本本身完全丢失了

将DynamicJasper与亚洲文本元素一起使用时,是否需要考虑一些其他编码设置


感谢您的建议和问候

您可能需要将jasper report exporter配置为在pdf文件中嵌入特殊字体。同时检查pdf字符编码

好的,这就是解决问题的方法,一步一步:

1.)将Arial Unicode MS字体扩展JAR添加到类路径(或任何其他等效Unicode字体)。一个“官方”的可以找到,但我最终使用。如果您使用的是maven,则可以使用以下
mvn
命令行和POM条目将文件添加到类路径中:

mvn安装:安装文件-Dfile=DynamicJasper-arial-unicode-fonts-1.0.jar-DgroupId=ar.com.fdvs-DartifactId=DynamicJasper-arial-unicode-fonts-Dversion=1.0-dpackage=jar

ar.com.fdvs
DynamicAsper arial unicode字体
1
2.)将spring core和spring Bean(如果尚未出现)添加到项目中:


org.springframework
弹簧芯
3.2.2.1发布
org.springframework
春豆
3.2.2.1发布
3.)启用“Identity-H”Jasper PDF编码:

静态{
setProperties(“net.sf.jasperreports.default.pdf.encoding”,“Identity-H”);
}
4.)将
Arial Unicode MS
配置为您的DynamicJasper字体(例如,行):

/。。。
最终DynamicReportBuilder DynamicReportBuilder=新的DynamicReportBuilder();
最终样式=新样式();
setFont(新字体(Font.MEDIUM,“Arial Unicode MS”,false));
setDefaultStyles(null,null,null,style);
// ...

这是一些令人讨厌的废话:-/…

嗨,Dj,谢谢你的输入。PDF字体嵌入似乎没有必要。只是我尝试了unicode字体和“Identity-H”编码,但不是同时尝试:-s。我发现如果生成PDF,嵌入实际上是必要的。添加Unicode字体作为依赖项和Identity-H编码对于屏幕内的演示非常有效,但PDF需要包含该字体。令人讨厌的废话,它确实没有使用JVM中可用的字体。