In Jaspersoft Studio I have created a report where I want to display title in bold. If I use sans serif font then it is working correctly. If I use other fonts, bold is displayed in the preview of Jaspersoft Studio, but is not showing when the report is run in the Jasper server. Please help.
-
For proper fonts in PDFs special considerations are necessary. For JasperReports as embedded library font extensions are a solution. I don't know, though, how to do the equivalent on Jasper server. – mkl Sep 23 '14 at 05:51
-
See: http://community.jaspersoft.com/wiki/custom-font-font-extension – Dave Jarvis May 09 '16 at 18:19
3 Answers
Adding maven artifact worked for me
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.16.0</version>
</dependency>

- 533
- 3
- 10
You need to create a jasper fonts extension jar and place it into your classpath both compile-time (while compiling the jrxmls) as well as run-time (while running reports). Here is how the jar (e.g. jasperreports-fonts-5.5.2.jar) should look:
The jasperreports_extension.properties should contain few properties to initialize fonts. (I have used spring based fonts initialization. You might need to add couple of spring jars like spring-core, spring-beans etc. to your classpath if not already present.)
net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.extensions.SpringExtensionsRegistryFactory
net.sf.jasperreports.extension.fonts.spring.beans.resource=fonts/fonts_def.xml
Now the fonts.xml to defined what fonts you want to add.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="fontBean001" class="net.sf.jasperreports.engine.fonts.SimpleFontFamily">
<property name="name" value="Tahoma"/>
<property name="normal" value="fonts/Tahoma.ttf"/>
<property name="bold" value="fonts/Tahoma_Bold.ttf"/>
<property name="pdfEmbedded" value="true"/>
</bean>
<bean id="fontBean002" class="net.sf.jasperreports.engine.fonts.SimpleFontFamily">
<property name="name" value="Arial"/>
<property name="normal" value="fonts/Arial.ttf"/>
<property name="bold" value="fonts/Arial_Bold.ttf"/>
<property name="italic" value="fonts/Arial_Italic.ttf"/>
<property name="boldItalic" value="fonts/Arial_Bold_Italic.ttf"/>
<property name="pdfEmbedded" value="true"/>
</bean>
</beans>
Note the property "pdfEmbedded"
is "true"
. Finally add the .ttf file for the fonts you want to add to jar.

- 1,279
- 3
- 16
- 33
Just go to this site for adding your custom fonts to PDF with Jasper:
Custom Font with the Font Extension
There's an illustrated guide showing you how to create it. Just download a *.ttf file for your font (eg.: Arial.ttf.)
Create the extension and export it as a *.jar file with the help of Eclipse.
Finally add the *.jar to your project. That's it.