当使用jasperreports-maven-plugin / 1.0-beta-2将jrxml文件编译为jasper时,生成的报告不能正确显示unicode字符,它会显示????代替。
很明显这是一个字体问题。所以我打开了iReport 4.0.1,并从那里编译了jrxml文件而没有改变任何特定的设置,生成的jasper文件可以很好地显示unicode字符。所以我假设有一些编译时属性我没有正确设置。
我想过使用jasperreports-maven-plugin插件的标签来定义编译jasper文件时使用的结果编码属性。但我无法找到那里设置的属性。
我从
中猜到了一些属性The JasperReport Configuration Reference
具体而言
net.sf.jasperreports.default.pdf.encoding
net.sf.jasperreports.export.character.encoding
但无济于事。
所以我想知道iReport是否使用了一些关于可以在asperreports-maven-plugin mojo中设置的字体,编码或字符集属性的特殊编译选项。
Alernatively,如果从这个mojo中无法做到这一点。
由于
答案 0 :(得分:5)
Maven插件很可能不使用JasperReports 4.0.1来编译报告。默认情况下,它使用定义为依赖关系的JasperReports:jasperreports:jasperreports:1.2.0。
由于JasperReports 4.0.1具有不同的组,工件和版本,因此无法覆盖此依赖项。排除仅适用于依赖项的依赖项,因此也不是一种选项。您需要使用不同版本的mojo来使用4.0.1编译模板。
幸运的是,补丁已经应用于mojo的主干,所以你要做的就是检查代码并将版本部署到你的存储库。
http://svn.codehaus.org/mojo/trunk/mojo/jasperreports-maven-plugin/
部署插件后,您需要将依赖关系覆盖到4.0.1。您可以通过在插件级别定义依赖项来实现此目的。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jasperreports-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>4.0.1</version>
</dependency>
</dependencies>
</plugin>