Jasper report uses iText and always when a char is not rendered in pdf this should be the checklist:
- Is my actual
.tff
supported (OpenType) and can the font actually render the character. Not all fonts render
all characters inUTF-8
, see How can I test if my font is rendered correctly in pdf? - Do I pass correct encoding to iText. In doubts (or in general) use the encoding
Identity-H
this is recommend for newer PDF standards and gives you the ability to mix different encoding. - Is my font embedded so that if I share the pdf also computers not having this font can display the content?
How can I ensure this is JasperReport?
The deprecated method was to set attributes on the textElement
<textElement>
<font pdfFontName="Helvetica" pdfEncoding="Identity-H" isPdfEmbedded="true"/>
<paragraph lineSpacing="Single"/>
</textElement>
The current non deprecated method v 3-6, is to add Font Extensions and this is easily achieved by using tools like iReport or JasperSoft Studio that can generate a .jar
of your font extension so that you can include it in your classpath directly.
How to generate font extension .jar using iReport or JasperSoft Studio.
EDIT: The problem of OP was 1 on checklist (.ttf font could not render), but surely he should consider both 2 and 3 using non deprecated method.