Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bold not working in Jaspersoft Studio for fonts other than sans serif

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.

like image 723
Akhilesh Avatar asked Sep 22 '14 15:09

Akhilesh


People also ask

How do I add a font to Jaspersoft Studio?

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.


3 Answers

Adding maven artifact worked for me

<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports-fonts</artifactId>
    <version>6.16.0</version>
</dependency>
like image 140
Asad Sarwar Avatar answered Oct 05 '22 14:10

Asad Sarwar


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:

pic1

pic2

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.

like image 33
keenUser Avatar answered Oct 05 '22 13:10

keenUser


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.

like image 24
Arundev Avatar answered Oct 05 '22 14:10

Arundev