3

I am trying to create PDF report via JasperReport but there is a broblem to reading font data. I have jasperreports_extension.properties & the relevant TTF files in ClassPath. here is the error:

java.io.IOException: Problem reading font data.
    java.awt.Font.createFont(Font.java:924)
    net.sf.jasperreports.engine.fonts.SimpleFontFace.<init>(SimpleFontFace.java:69)
    net.sf.jasperreports.engine.fonts.SimpleFontFamily.createFontFace(SimpleFontFamily.java:316)
    net.sf.jasperreports.engine.fonts.SimpleFontFamily.setNormal(SimpleFontFamily.java:85)
    net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.parseFontFamily(SimpleFontExtensionHelper.java:243)
    net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.parseFontFamilies(SimpleFontExtensionHelper.java:214)
    net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.loadFontFamilies(SimpleFontExtensionHelper.java:183)
    net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.loadFontFamilies(SimpleFontExtensionHelper.java:152)
    net.sf.jasperreports.engine.fonts.FontExtensionsRegistry.getExtensions(FontExtensionsRegistry.java:55)
    net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:110)
    net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:83)
    net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:121)
    net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:77)
    net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:87)
    net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:57)
    net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:142)
    net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:78)
    net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
    org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView.fillReport(AbstractJasperReportsView.java:666)
    org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView.renderMergedOutputModel(AbstractJasperReportsView.java:559)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:801)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

who can help me with it??

thanks!

user2618259
  • 31
  • 1
  • 2
  • ` have jasperreports_extension.properties & the relevant TTF files in ClassPath.` - Did you create jar with font? Look at [Font Extensions](http://jasperreports.sourceforge.net/sample.reference/fonts/index.html#fontextensions) topic – Alex K Jul 25 '13 at 11:12
  • The quote from sample: `Once you have the TTF files, the jasperreports_extension.properties and fonts.xml files, you can pack them together in a JAR file, and then put the JAR in your application's classpath, in order to make the new fonts available to your reports, wherever the application might run.` – Alex K Jul 25 '13 at 11:13
  • Yes. I have created Jar with iReport tool and put it in classpath. the same error is appear – user2618259 Jul 25 '13 at 11:41
  • What version of *JasperReports* library are you using? – Alex K Jul 25 '13 at 11:50
  • We used with Version 4.5.1 – user2618259 Jul 25 '13 at 11:56
  • I think you the debug on *JR* classes (you can download the source code) can help you. It is better to check the second parameter for this this method `Font.createFont(Font.TRUETYPE_FONT, is);` (the line #69 in `SimpleFontFace(String)` constructor.) – Alex K Jul 25 '13 at 12:06
  • I didn't sucess to research and understend what the problem. I looked in the source code but it looks to me OK. this Jasper report is new for me. can you help me with that please? – user2618259 Jul 25 '13 at 16:09
  • Who can help me with it, please????????? – user2618259 Jul 29 '13 at 13:25

3 Answers3

2

Change permissions on the tomcat temp directory to allow tomcat/jasper to write to it.

See: http://community.jaspersoft.com/questions/543492/javaioioexception-problem-reading-font-data

  • My tomcat was se to use c:\windows. Maybe changing the temp dir (java.io.tmpdir property) is better. http://stackoverflow.com/questions/2837972/how-is-the-tomcat-temp-directory-location-defined – Rogel Garcia Mar 11 '15 at 19:24
1

In My case I solved this issues by manually creating a temp directory in Tomcat folder and changing permission.

Running tomcat/application server with administrator access can also help.

sampopes
  • 2,646
  • 1
  • 22
  • 34
0

I am facing the same issue and root cause in my case is temp folder is removed from tomcat directory solution is when i created temp folder in tomcat then this issue is resolved.

Neeraj singh
  • 257
  • 1
  • 8
  • 18