Jasper Reports Font Extension
![Jasper Reports Font Extension](/assets/images/blogs/image_header/jasper_fonts.png)
Introduction
JasperReports font extension is used to package fonts which are not available in the target platform (e.g. Some Microsoft fonts are not available in Linux platform).
Prerequisites
- JDK 1.7 or later
- Maven 3.X
Steps
The following steps are used to create a font-extension for the font ‘Arial’
1. Create a maven project in the following structure.
Root
|--pom.xml
|--src
|--main
|--resources
|--fonts
| |--fontsfamily.xml
|--jasperreports_extension.properties
2. Project POM
JasperReport Font extension doesn’t need any dependency so the pom.xml can be minimal.
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.seenukarthi</groupId>
<artifactId>jasper-fonts-arial</artifactId>
<version>1.0.0</version>
<name>Jasper Reports Font Extension for Arial</name>
<packaging>jar</packaging>
<dependencies>
</dependencies>
</project>
3. Fonts config
- Copy the required fonts to the
Root\src\main\resources\fonts\
folder. (There may have multiple files for each font style, so copy all the files.). - Edit
Root\src\main\resources\fonts\fontsfamily.xml
and add the following content.
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
<fontFamily name="Arial">
<!-- Normal Arial Font -->
<normal><![CDATA[fonts/arial.ttf]]></normal>
<!-- Bold Arial Font -->
<bold><![CDATA[fonts/arialbd.ttf]]></bold>
<!-- Italic Arial Font -->
<italic><![CDATA[fonts/ariali.ttf]]></italic>
<!-- Bolt italic Arial Font -->
<boldItalic><![CDATA[fonts/arialbi.ttf]]></boldItalic>
<!-- Is font is embedded in PDF -->
<pdfEmbedded><![CDATA[true]]></pdfEmbedded>
</fontFamily>
</fontFamilies>
- Edit the
Root\src\main\resources\jasperreports_extension.properties
and add the following entries.
net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.ireportfamily=fonts/fontsfamily.xml
Build
$ mvn clean install
Add this artifact as dependency to the project which needed the fonts.
Newest Posts
- Anaconda Proxy Repository in Nexus OSS 3
- Node Command Line Interface Tool in TypeScript.
- Continuous Deployment for Jekyll using Bitbucket Pipeline to deploy in Github
- Grunt Watch and Livereload (Using BrowserSync) in Jekyll
- Java Thick Client with Kerberos for RESTful Service
- Install Gradle in Cloud9 IDE
- Localhost Authentication for Spring Kerberos
- JasperReport with Gradle
- Jasper Reports Font Extension
- JDK Folder from Installation EXE