'Ukraine (Cyrillic) characters not displaying in Jasper Report PDF
I am trying to display ukranian character in jasper report as a pdf file. but it is not diaplaying in pdf format.
when I export report to all other format like html, csv..ukranian char is displaying.
Solution 1:[1]
Set some text field properties at iReport. Use font DejaVu Sans. Set pdf encoding to Cp1251 and isPdfEmbedded to true.
Ex.: <font fontName="DejaVu Sans" isStrikeThrough="false" pdfEncoding="Cp1251" isPdfEmbedded="true" />
jasperreports fonts as maven dependency:
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
</dependency>
Solution 2:[2]
First, make sure you have the right encoding:
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");
Then you should change the fonts to ones that support cyrillic. This is done via styles:
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);
}
}
}
}
And invoke this method with addPdfFontsToStyles(jasperReport.getStyles());
Of course, the prerequisites are:
- your text is using one of the above style names
- you have the ttf files on the classpath
That should do it (I'm taking the code from a working cyrilic application)
Solution 3:[3]
register font in JVM
Font myFont = Font.createFont(Font.TRUETYPE_FONT, new File("pathToCyrillicFont")); GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(myFont);add to Cyrillic field this:
<textElement> <font fontName="fontName" pdfFontName="pathToCyrillicFont" size="13" isBold="false" isItalic="false" isUnderline="false" isPdfEmbedded ="true" pdfEncoding ="Cp1251" isStrikeThrough="false" /> </textElement>
Enjoy!
Solution 4:[4]
Since jasper report v5, v6 the correct way to display characters in pdf is to use font-extension
For more information see these question on stackoverflow:
Jasper Reports PDF doesn't export cyrillic values
How can I display "$£?€???" in Jasperserver PDF using iReport?
Solution 5:[5]
just stumbled over this, the solution for me was to add the font-resource on the server. Go to you report -> edit -> add Resources
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | mist |
| Solution 2 | Bozho |
| Solution 3 | user1958322 |
| Solution 4 | Community |
| Solution 5 | womd |
