Jasper ireport 3.7.6 font style not rendering in PDF

I am using ireport 3.7.6 and trying to use different fonts for different text elements. I made the necessary changes to the font style and it shows when I do a preview, but the PDF file created by the java application only gets the default font. I checked the XML and it has fontName = "Times New Roman" . Please help me with this.

+1
jasper-reports
Nov 19 '15 at 15:44
source share
2 answers

In the latest version of the jasper report, 5.6 different fonts are included through font extensions .

You need the version of the .ttf font you want to display (Times new roman can be found in windows / font).

The easiest way to enable a font is ireport-designer or Jaspersoft Studio

  • Get the desired ttf font.
  • Install the font in ireport or studio
  • Export font extension (this creates a .jar)
  • Add a jar to your class path.

This is the link for this iReport step, and this is in Jaspersoft Studio

+1
Nov 23 '15 at 16:32
source share

try installing jasperreports.properties as follows:

# http://jasperreports.sourceforge.net/config.reference.html # http://jasperreports.sourceforge.net/sample.reference/fonts/index.html # # net.sf.jasperreports.default.font.name=SansSerif - the default font name. # net.sf.jasperreports.default.font.size=10 - the default font size. # net.sf.jasperreports.default.pdf.font.name=Helvetica - the default PDF font. # net.sf.jasperreports.default.pdf.encoding=Cp1252 - the default PDF character encoding. # net.sf.jasperreports.default.pdf.embedded=false - by default PDF fonts are not embedded # net.sf.jasperreports.export.character.encoding=UTF-8 net.sf.jasperreports.default.font.name=DejaVu Sans net.sf.jasperreports.default.font.size=10 net.sf.jasperreports.default.pdf.font.name=DejaVu Sans net.sf.jasperreports.default.pdf.encoding=UTF-8 net.sf.jasperreports.default.pdf.embedded=true 

jasperreports_extension.properties:

 net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory net.sf.jasperreports.extension.simple.font.families.myfamily=com/your/company/resources/fonts/jasper.xml 

and match your pdf fonts with physical fonts (jasper.xml):

 <?xml version="1.0" encoding="UTF-8"?> <fontFamilies> <fontFamily name="DejaVu Sans"> <normal>net/sf/jasperreports/fonts/dejavu/DejaVuSans.ttf</normal> <bold>net/sf/jasperreports/fonts/dejavu/DejaVuSans-Bold.ttf</bold> <italic>net/sf/jasperreports/fonts/dejavu/DejaVuSans-Oblique.ttf</italic> <boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSans-BoldOblique.ttf</boldItalic> <pdfEncoding>Identity-H</pdfEncoding> <pdfEmbedded>true</pdfEmbedded> <exportFonts> <export key="net.sf.jasperreports.html">'DejaVu Sans', Arial, Helvetica, sans-serif</export> <export key="net.sf.jasperreports.xhtml">'DejaVu Sans', Arial, Helvetica, sans-serif</export> </exportFonts> <!-- <locales> <locale>en_US</locale> <locale>de_DE</locale> </locales> --> </fontFamily> <fontFamily name="DejaVu Serif"> <normal>net/sf/jasperreports/fonts/dejavu/DejaVuSerif.ttf</normal> <bold>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-Bold.ttf</bold> <italic>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-Italic.ttf</italic> <boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-BoldItalic.ttf</boldItalic> <pdfEncoding>Identity-H</pdfEncoding> <pdfEmbedded>true</pdfEmbedded> <exportFonts> <export key="net.sf.jasperreports.html">'DejaVu Serif', 'Times New Roman', Times, serif</export> <export key="net.sf.jasperreports.xhtml">'DejaVu Serif', 'Times New Roman', Times, serif</export> </exportFonts> </fontFamily> <fontFamily name="DejaVu Sans Mono"> <normal>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono.ttf</normal> <bold>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono-Bold.ttf</bold> <italic>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono-Oblique.ttf</italic> <boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf</boldItalic> <pdfEncoding>Identity-H</pdfEncoding> <pdfEmbedded>true</pdfEmbedded> <exportFonts> <export key="net.sf.jasperreports.html">'DejaVu Sans Mono', 'Courier New', Courier, monospace</export> <export key="net.sf.jasperreports.xhtml">'DejaVu Sans Mono', 'Courier New', Courier, monospace</export> </exportFonts> </fontFamily> <!-- Mapping Java logical fonts, for the sake of HTML export only. --> <fontFamily name="SansSerif"> <normal>net/sf/jasperreports/fonts/dejavu/DejaVuSerif.ttf</normal> <bold>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-Bold.ttf</bold> <italic>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-Italic.ttf</italic> <boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-BoldItalic.ttf</boldItalic> <pdfEncoding>Identity-H</pdfEncoding> <pdfEmbedded>true</pdfEmbedded> <exportFonts> <export key="net.sf.jasperreports.html">'DejaVu Sans', Arial, Helvetica, sans-serif</export> <export key="net.sf.jasperreports.xhtml">'DejaVu Sans', Arial, Helvetica, sans-serif</export> </exportFonts> </fontFamily> <fontFamily name="Serif"> <normal>net/sf/jasperreports/fonts/dejavu/DejaVuSerif.ttf</normal> <bold>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-Bold.ttf</bold> <italic>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-Italic.ttf</italic> <boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-BoldItalic.ttf</boldItalic> <pdfEncoding>Identity-H</pdfEncoding> <pdfEmbedded>true</pdfEmbedded> <exportFonts> <export key="net.sf.jasperreports.html">'DejaVu Serif', 'Times New Roman', Times, serif</export> <export key="net.sf.jasperreports.xhtml">'DejaVu Serif', 'Times New Roman', Times, serif</export> </exportFonts> </fontFamily> <fontFamily name="Monospaced"> <normal>net/sf/jasperreports/fonts/dejavu/DejaVuSerif.ttf</normal> <bold>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-Bold.ttf</bold> <italic>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-Italic.ttf</italic> <boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-BoldItalic.ttf</boldItalic> <pdfEncoding>Identity-H</pdfEncoding> <pdfEmbedded>true</pdfEmbedded> <exportFonts> <export key="net.sf.jasperreports.html">'DejaVu Sans Mono', 'Courier New', Courier, monospace</export> <export key="net.sf.jasperreports.xhtml">'DejaVu Sans Mono', 'Courier New', Courier, monospace</export> </exportFonts> </fontFamily> </fontFamilies> 

and the desired fonts in the resource directory, put jasperreports.jar jasperreports-fonts.jar jasperreports-javaflow.jar in the classpath

I tested this on Linux, WinXp, Win7. Rendering and Exporting Efficiency

0
Nov 19 '15 at 15:53
source share



All Articles