Vis*_*hal 11 java pdf localization jasper-reports
我试图在jasper报告中显示ukranian字符作为pdf文件.但它不是以pdf格式显示的.
当我将报告导出到所有其他格式(如html)时,显示csv..ukranian char.
在iReport上设置一些文本字段属性.使用字体DejaVu Sans.将pdf编码设置为Cp1251,将isPdfEmbedded设置为true.
例: <font fontName="DejaVu Sans" isStrikeThrough="false" pdfEncoding="Cp1251" isPdfEmbedded="true" />
jasperreports字体作为maven依赖:
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
首先,确保您拥有正确的编码:
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");
Run Code Online (Sandbox Code Playgroud)
然后你应该将字体更改为支持西里尔字母的字体.这是通过样式完成的:
public void addPdfFontsToStyles(JRStyle[] styles) {
if (styles != null) {
for (JRStyle style : styles) {
if (style.getName().equals("reportStyle")) {
style.setPdfFontName("/com/yourcompany/fonts/times.ttf");
style.setBlankWhenNull(true);
}
if (style.getName().equals("reportBoldStyle")) {
style.setPdfFontName("/com/yourcompany/fonts/timesbd.ttf");
style.setBlankWhenNull(true);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
并使用调用此方法 addPdfFontsToStyles(jasperReport.getStyles());
当然,先决条件是:
应该这样做(我从一个有效的cyrilic应用程序中获取代码)
归档时间: |
|
查看次数: |
7151 次 |
最近记录: |