Jasper font extension working only for PDF but not for other formats (HTML,XLS,DOC)

0

Through Jaspersoft Studio we exported the built-in Windows Calibri font variants for use in a webapp into a font extension JAR, using the following settings:

The directory structure within the exported jrfontextensions.jar is as follows:

--jrfontextensions
  --jasperreports_extension.properties
  --fonts
    --fontsfamily1505796949749.xml
    --Custom_Font
      --calibri.ttf
      --calibrib.ttf
      --calibrii.ttf
      --calibriz.ttf

Contents of jasperreports_extension.properties:

net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.ireportfamily1505796949749=fonts/fontsfamily1505796949749.xml

Contents of fontsfamily1505796949749.xml:

<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
    <fontFamily name="Custom-Font">
        <normal><![CDATA[fonts/Custom_Font/calibri.ttf]]></normal>
        <bold><![CDATA[fonts/Custom_Font/calibrib.ttf]]></bold>
        <italic><![CDATA[fonts/Custom_Font/calibrii.ttf]]></italic>
        <boldItalic><![CDATA[fonts/Custom_Font/calibriz.ttf]]></boldItalic>
        <pdfEncoding><![CDATA[Identity-H]]></pdfEncoding>
        <pdfEmbedded><![CDATA[true]]></pdfEmbedded>
        <exportFonts>
            <export key="html"><![CDATA[Custom-Font]]></export>
            <export key="rtf"><![CDATA[Custom-Font]]></export>
            <export key="xhtml"><![CDATA[Custom-Font]]></export>
        </exportFonts>
    </fontFamily>
</fontFamilies>

We then use the custom font on our JRXML templates similar to this way:

Now when we export this report as PDF, the Calibri font embedded into the PDF as the Custom-Font displays correctly, as expected:

But we ran into problems when trying to export the report to other formats like HTML, DOC, and XLS. It seems the web browser or office apps don't recognize the "Custom-Font" and falls back to one of their default fonts: the XLS report defaults to DejaVu Sans, while the HTML and DOC reports default to Times New Roman. (I can provide additional screencaps of these reports if you want)

I feel like we must be missing something obvious here, perhaps we're lacking a jasperreports.properties file, or some JRExporter configuration? Thanks for any repsponse.

joan160096's picture
Joined: Sep 19 2017 - 4:10am
Last seen: 2 years 7 months ago

Here are the additional screencaps of the defective reports.


XLS - defaults to DejaVu Sans - granted it highly resembles Calibri, but it's still clearly different. Notice how the tail of the lowercase 't' curves up for Calibri in the PDF (correct) but not for DejaVu Sans in the XLS (incorrect):


DOC


HTML

joan160096 - 2 years 10 months ago

1 Answer:

0

Also forgot to ask - and sorry if this is a stupid question - but are jasper font extensions intended for PDF-exported reports only? Never seen it explicitly stated that way but that's the impression that I'm getting from the online tutorials and articles I've read so far.

joan160096's picture
Joined: Sep 19 2017 - 4:10am
Last seen: 2 years 7 months ago
Feedback