2012-11-28 66 views
5

我在Windows中使用eclipse。字體不可用於jvm,同時將報告從jrxml轉換爲pdf

我在使用jar jasperreports-4.1.1.jar從jrxml文件生成pdf文件時出現此錯誤。我從我的Windows文件夾中手動添加了字體文件,並添加了路徑變量的字體路徑,但仍然收到相同的錯誤。

net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font : 
pdfFontName : Arial 
pdfEncoding : Cp1252 
isPdfEmbedded : false 

我所觀察到的另一個奇怪的事情是,當我嘗試坎布里亞字體相同的功能,我得到一個不同的錯誤。 下面是錯誤,當我使用坎布里亞

net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'CAMBRIA' is not available to the JVM. See the Javadoc for more details. 
at net.sf.jasperreports.engine.util.JRFontUtil.checkAwtFont(JRFontUtil.java:358) 
at net.sf.jasperreports.engine.util.JRStyledText.getAwtAttributedString(JRStyledText.java:226) 
at net.sf.jasperreports.engine.export.AbstractTextRenderer.render(AbstractTextRenderer.java:263) 
at net.sf.jasperreports.engine.export.JRPdfExporter.exportText(JRPdfExporter.java:2026) 
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:729) 
at net.sf.jasperreports.engine.export.JRPdfExporter.exportFrame(JRPdfExporter.java:2526) 
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:733) 
at net.sf.jasperreports.engine.export.JRPdfExporter.exportFrame(JRPdfExporter.java:2526) 
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:733) 
at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:689) 
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:582) 
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:376) 
at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:122) 
at main.CopyOfTable.runReport(CopyOfTable.java:60) 
at main.CopyOfTable.main(CopyOfTable.java:100) 

回答

5

希望這有助於:

  1. 定義你的字體作爲「字型擴展」。這涉及到創建兩個 文件:jasperreports_extension.properties和fonts.xml。看看它是如何在JasperReports包的 demo/fonts目錄中完成的,你可以從http://community.jaspersoft.com/project/jasperreports-library/releases下載 。

  2. 將您的字體和字體擴展名打包到類路徑中可用的JAR文件中。

這適用於TrueType和OpenType字體。

另外:

見特奧多爾的第一個評論here

本網站上的衆多有用答案之一是here

祝你好運。

+0

我已經下載jasperReport.5.0.0.jar並添加到我的classpath中,但仍然有同樣的問題。仔細觀察,jar文件中沒有fonts.xml文件,因此我手動添加了jar文件並嘗試了它,但仍然沒有運氣。 – user1859459

+0

你需要下載jasperreports-5.0.0-project.zip,而不是jar。該項目包含演示/字體目錄,演示了正確的方法。如果你按照這個例子和文檔[這裏](http://jasperreports.sourceforge.net/sample.reference/fonts/index.html#fontextensions),你應該沒問題。 – glenn380

+0

它像魔術一樣工作 – nurgasemetey