anonymous_user Posted January 8, 2008 Share Posted January 8, 2008 JRException Can't read font file (*.ttf) on linux Hello everybody, I have a problem with reading file font (ex: Arial.ttf) on linux server I export the jasper report from my java code, and set a folder for fonts (arabic fonts) under fonts folder on my application and my java code set PDF font of jasper report to refer to font under this path (ex: /xxx/fonts/Arial.ttf) and set PDFEncoding to be Identity-H to support Arabic and English lettersit works well for me on windows servers for both browsers (internet explorer and Mozilla firefox).But on linux servers when calling report the page appears blank on firefox browser and i found the following exception: net.sf.jasperreports.engine.JRException: Could not load the following font :pdfFontName : /usr/local/tomcat/webapps/xxx/fonts/Arial.ttfpdfEncoding : Identity-HisPdfEmbedded : true at net.sf.jasperreports.engine.export.JRPdfExporter.getChunk(JRPdfExporter.java:1389) at net.sf.jasperreports.engine.export.JRPdfExporter.getPhrase(JRPdfExporter.java:1311) at net.sf.jasperreports.engine.export.JRPdfExporter.exportText(JRPdfExporter.java:1631) at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:559) at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:523) at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:488) at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:271) at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdf(JasperExportManager.java:188) at com.company.presentation.Report.PrintReport(Report.java:130) at com.company.presentation.Report.Print(Report.java:72) at com.company.presentation.Report.TestAction.PrintUnique(TestAction.java:637) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274) at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at ma.fmcp.presentation.UTF8Filter.doFilter(UTF8Filter.java:28) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) Any help will be appreciated. Link to comment Share on other sites More sharing options...
anonymous_user Posted January 9, 2008 Author Share Posted January 9, 2008 Is there anything unclear here, any ideas. Link to comment Share on other sites More sharing options...
lucianc Posted January 10, 2008 Share Posted January 10, 2008 Isn't there any further exception stacktrace? JRException wraps another exception, and the original exception would help identifying the error cause. Regards,Lucian Link to comment Share on other sites More sharing options...
anonymous_user Posted January 11, 2008 Author Share Posted January 11, 2008 no it is the only exception :( Link to comment Share on other sites More sharing options...
lucianc Posted January 11, 2008 Share Posted January 11, 2008 Try to debug your application and to inspect the exception as thrown by JasperReports. Unless we see the original exception, I don't think we'd be able to tell what caused it. Regards,Lucian Link to comment Share on other sites More sharing options...
anonymous_user Posted January 11, 2008 Author Share Posted January 11, 2008 Now there is no exception appears now after i have changed the *.ttf to *.TTF as Linux is case sensative with finding files where windows is not, i discover that by chance from minutes. But although of that, the report didn't displayed on linux because it throws another exception because i included an image on my report (logo image) and i set image expression to "http://www.upload2world.com/pic63/upload2world_487f0.jpg" from IReport. But it seems that linux can't download image, and throws the following exception: net.sf.jasperreports.engine.JRException: Error loading image data : http://www.upload2world.com/pic63/upload2world_487f0.jpg at net.sf.jasperreports.engine.util.JRImageLoader.loadImageDataFromURL(JRImageLoader.java:108) at net.sf.jasperreports.engine.util.JRImageLoader.loadImageDataFromLocation(JRImageLoader.java:151) at net.sf.jasperreports.engine.JRImageRenderer.getInstance(JRImageRenderer.java:190) at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:481) at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:430) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:277) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:399) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillTitle(JRVerticalFiller.java:279) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:220) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:758) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:685) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517) and this exception didn't appear before.Thanks lucianc for help. Link to comment Share on other sites More sharing options...
lucianc Posted January 11, 2008 Share Posted January 11, 2008 Again, the exception stacktrace is not complete. Only the original exception would help identifying the cause. Regards,Lucian Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now