我有一個應用程序,我使用jasper報告庫從在線生成報告。無論使用Helvetica以外的其他字體,生成PDF報告都是一個問題。我無法檢測字體被引用/加載的位置。我沒有Helvetica或Times-Roman的任何顯式類。jasperreports引擎從哪裏引用字體?
以下是拋出的錯誤:
net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font :
pdfFontName : Times-Roman
pdfEncoding : Identity-H
isPdfEmbedded : false
at net.sf.jasperreports.engine.export.JRPdfExporter.getFont(JRPdfExporter.java:2036) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.export.JRPdfExporter.getChunk(JRPdfExporter.java:1818) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.export.JRPdfExporter.getPhrase(JRPdfExporter.java:1787) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.export.SimplePdfTextRenderer.getPhrase(SimplePdfTextRenderer.java:89) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.export.SimplePdfTextRenderer.render(SimplePdfTextRenderer.java:99) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.export.JRPdfExporter.exportText(JRPdfExporter.java:2158) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:861) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:821) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:698) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:420) ~[jasperreports-5.5.0.jar:5.5.0]
但是,如果我給PDF字體名稱黑體同一份報告中,一切都正常運行。
任何人都可以請幫我理解這是如何工作的嗎?另外,如果我想添加一些新的字體,我可以在哪裏添加它?
遵循的步驟,以在碧玉字體jar添加一個新的字體,鏈接如下
http://www.codesuggestions.com/java/jasper-reports/adding-custom-fonts-t提到...
之前的錯誤消失了。彈出一個新的錯誤。
Caused by: java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:121) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:88) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:103) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:61) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:179) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:81) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:276) ~[jasperreports-5.5.0.jar:5.5.0]
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745) ~[jasperreports-5.5.0.jar:5.5.0]
JasperReports的-5.5.0.jar存在於該應用程序,仍然面臨此錯誤的classspath。
添加字體,您需要使用字體的擴展看到這個http://stackoverflow.com/questions/33940126/how-can-i-display-%C2%A3%E2%84%A6%E2 %82%AC%CE%B1%CF%80%E2%85%94-in-jasperserver-pdf-using-ireport –
感謝您的迴應Petter。我已經嘗試了將字體的.ttf作爲jar導出並將其添加到類路徑中的方法。但是,它沒有工作,我仍然得到了:java.lang.NoClassDefFoundError:無法初始化類net.sf.jasperreports.engine.util.JRStyledTextParser 錯誤。是否有一個特定的名稱,我應該提供給從iReports創建的jar,或者任何名字都可以嗎? – Suhasini
你使用什麼字體?確保它與itext庫一起工作http://stackoverflow.com/questions/35127956/how-can-i-test-if-my-font-is-rendered-correctly-in- PDF格式。 java.lang.NoClassDefFoundError說,你缺少一個庫,但我需要更多的棧跟蹤,因爲在目前我看不到哪一個 –