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.
Open up Jaspersoft Studio (or iReport, or if you're creating the fonts-extension. jar manually for some reason, skip to the section that applies to you): Click Window\Preferences. In the preferences window go to Jaspersoft Studio/Fonts and click add.
Adding maven artifact worked for me
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.16.0</version>
</dependency>
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With