我试图在jasper报告中显示ukranian字符作为pdf文件。但它不是以pdf格式显示的。在Jasper Report中未显示乌克兰(Cyrilic)字符PDF
当我将报告导出到所有其他格式,如html,csv..ukranian字符显示。
请帮帮我!
我试图在jasper报告中显示ukranian字符作为pdf文件。但它不是以pdf格式显示的。在Jasper Report中未显示乌克兰(Cyrilic)字符PDF
当我将报告导出到所有其他格式,如html,csv..ukranian字符显示。
请帮帮我!
首先,确保你有正确的编码:
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");
那么你应该改变字体,以支持西里尔的。这是通过样式完成:
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);
}
}
}
}
并调用此方法addPdfFontsToStyles(jasperReport.getStyles());
当然,先决条件是:
应该这样做它(我正在从工作cyrilic应用程序的代码)
+1工作得很好 - 谢谢! – 01es 2012-11-02 19:25:04
注册字体在JVM
Font myFont = Font.createFont(Font.TRUETYPE_FONT, new File("pathToCyrillicFont"));
GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(myFont);
添加到西里尔场这样的:
<textElement>
<font
fontName="fontName"
pdfFontName="pathToCyrillicFont"
size="13"
isBold="false"
isItalic="false"
isUnderline="false"
isPdfEmbedded ="true"
pdfEncoding ="Cp1251"
isStrikeThrough="false"
/>
</textElement>
享受!
在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>
很棒的回答! – mist 2015-05-05 23:15:05
3年后... pdfEncoding已弃用,但是jasperreports-fonts使用font-extensions如果您喜欢使用自己的字体,请参阅http://stackoverflow.com/questions/34041619/jasper-reports-pdf-doesnt-export-西里尔值/用于字体扩展的例子。 – 2016-01-18 17:04:46
由于碧玉报告V5,V6在PDF是用font-extension
欲了解更多信息显示字符的正确方法请参阅以下问题:
Jasper Reports PDF doesn't export cyrillic values
How can I display "$£Ω€απ⅔" in Jasperserver PDF using iReport?
用于导出的字体是否具有必需的字符?我不确定Jasper Report使用什么方法,但PDF文件通常包含用于生成它的字体 - 这意味着字体必须支持国际字符。 – Piskvor 2011-02-23 16:33:29
http://maryniuk.blogspot.com/2010/09/custom-ttf-fonts-in-jasperreports。HTML这帮了我 – 2011-06-22 06:28:47