Jasper用PDF和Unicode(希腊语)字符报告

Ser*_*eim 9 pdf unicode jasper-reports ireport

我有一个非常奇怪的问题:我正在尝试将包含Unicode字符(希腊语)的Jasper报告导出为PDF.我的问题是,一个特定的希腊字符(字符三角形)打印在与我正在使用的字体(Arial)不同的字体中!

从导出的pdf复制以下图像:

我不喜欢这个

以下图像是使用相同字体的MS Word中的相同文本:

这要好得多

如您所见,第三个字母(delta)与其他字母不同.对于所有字体大小,此信件仅适用于此字母.我也尝试将字体更改为garamond,但仍然遇到完全相同的字母同样的问题!

最后,我应该补充说iReport的内部预览是好的,也可以导出到其他格式,如docx或html ...

更新20/04/11:我还试图用福昕阅读器便携式打开PDF文件,但其行为与Adobe Acrobat Reader完全相同.

更新28/04/11:在pastebin中创建了一个片段,在导出为pdf时会产生问题.一个警告 - 您必须通过iReport的"选项 - 字体""安装"您将使用的字体(在我的情况下为Arial),否则您将无法在pdf中看到任何内容.

更新05/03/13解决方案:好吧,因为有人(可能来自希腊)仍有同样的问题并查看此问题,我想再次进行更新:我开始再次使用Jasper报告,但现在我正在使用更新版本的Jasper(Jasper 5)和iReport(iReport 5).现在一切正常 - 在PDF中没有问题的增量:)所以如果您遇到同样的问题,请尝试升级您的iReport和Jasper库!

更新05/04/13最终评论:两年后,我能够在有问题的希腊字符(delta)的系统上再次工作,并能够得出关于该问题的最终结论:所以,首先我升级了版本贾斯珀我们使用5.x仍然遇到了问题!只有当我使用从iReport 5.x创建(导出)的新字体扩展名(.jar)更改了包含的字体扩展名(.jar)时,问题才得以解决.因此,问题是当导出字体扩展名时,iReport 3.x(用于导出旧扩展名)没有正确导出希腊字符增量,而iReport 5.x导出它很好.所以我的建议仍然是正确的:任何有此问题的人都会将您的Jasper版本升级到5.x,但也会通过iReprot 5.x重新导出您的字体扩展名.我真的希望我不会再对此更新:)

mda*_*man 3

字体扩展。答案是字体扩展。(答案始终是字体扩展。)

当我运行你的报告时,我得到了不同的结果:我没有看到任何希腊字符。我可以通过更改字体来解决它。或者我可以通过添加 Arial 作为字体扩展来解决它。(或者我可以通过将 Arial 放入类路径中的某个地方来解决这个问题......但不要这样做。这是自找麻烦。)我不久前写过有关字体扩展的文章。它们是为了解决此类问题而创建的。这就是你应该使用的。

因为该报告对我来说表现不同,所以我只能确定这就是答案。让我们知道。