Search code examples
javajasper-reportsexport-to-pdf

Jasper report, load multiple Font Extension


i want my Jasper Report to support something like 5 or 6 languages dynamically.

i wish to use the google noto-sans font (www.google.com/get/noto) and google noto, have a single file for each language, (beside the main font file )

should i create a couple of font extensions and add them to my classpath ?

following my previous question How to get non-english support when exporting to PDF?


Solution

  • In the jasper report you have

    <font fontName="google_noto"/>
    

    Related to this font you can only have 1 font-extension with the family name google_noto (containing the font for normal, bold, italic etc).

    You can't switch this font extension dynamically the solution would be:

    1. Use a font that contains all relative language.

    2. Create a different jrxml (reports) for the different language with different fontName and the create font-extension with all the different family names:

      //report in English
      <font fontName="google_noto_en"/>
      //report in Italian        
      <font fontName="google_noto_it"/>
      

    A work around would be to indicate fake font, disable errors for missing font and switch the default font as you like before generating report.

    net.sf.jasperreports.awt.ignore.missing.font="true"
    net.sf.jasperreports.default.font.name="google_en"
    

    This question is about setting properties JRProperties became deprecated, recommended way of replacing

    However, I would strong recommend and choose: "1. Use a font that contains all relative language"