java 将报告从 jrxml 转换为 pdf 时,jvm 无法使用字体

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13602922/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-31 13:23:32  来源:igfitidea点击:

Font is not available to jvm while converting a report from jrxml to pdf

javafontsjasper-reports

提问by user1859459

I am using eclipse in windows.

我在 Windows 中使用 Eclipse。

I am getting this error while generating pdf file from jrxml file using jar jasperreports-4.1.1.jar. I have manually added font files in my jre from my windows folder and have added font path to path variable but still getting the same error.

使用 jar jasperreports-4.1.1.jar 从 jrxml 文件生成 pdf 文件时出现此错误。我已经从我的 Windows 文件夹中手动在我的 jre 中添加了字体文件,并将字体路径添加到路径变量中,但仍然出现相同的错误。

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

Another weird thing which I have observed is that when I try the same function for Cambria font, I get a different error. Below is the error when I use cambria

我观察到的另一件奇怪的事情是,当我为 Cambria 字体尝试相同的功能时,我得到了不同的错误。以下是我使用 cambria 时的错误

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)

回答by glenn380

Hope this helps:

希望这可以帮助:

  1. Define your fonts as "font extensions". This involves creating two files: jasperreports_extension.properties and fonts.xml. See how it's done in the demo/fonts directory in the JasperReports package you can download from http://community.jaspersoft.com/project/jasperreports-library/releases.

  2. Package your fonts and the font extensions into a JAR file that is available on the classpath.

  1. 将您的字体定义为“字体扩展”。这涉及创建两个文件:jasperreports_extension.properties 和 fonts.xml。看看它是如何在 JasperReports 包的 demo/fonts 目录中完成的,你可以从http://community.jaspersoft.com/project/jasperreports-library/releases下载。

  2. 将您的字体和字体扩展打包到类路径中可用的 JAR 文件中。

This works for TrueType and OpenType fonts.

这适用于 TrueType 和 OpenType 字体。

Also:

还:

See Teodor's first comment here.

在这里查看 Teodor 的第一条评论。

One of many helpful answers on this site is here.

本网站上许多有用的答案之一是这里

Good luck.

祝你好运。

回答by Md. Maidul Islam

You fetch following type of error

您获取以下类型的错误

net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font

net.sf.jasperreports.engine.JRRuntimeException:无法加载以下字体

You must check temp folder in you tomcat directory. If you not found any temp folder, please create temp folder as like

您必须检查 tomcat 目录中的临时文件夹。如果您没有找到任何临时文件夹,请像这样创建临时文件夹

enter image description here

在此处输入图片说明

回答by Thales Rocha

I solved this issue just adding the missing font to OS, in my case, Windows 7. My report does not use the missing font, which was Calibri Light, and always worked in others enviroments.

我解决了这个问题,只是将缺少的字体添加到操作系统中,在我的情况下是 Windows 7。我的报告没有使用缺少的字体,它是 Calibri Light,并且总是在其他环境中工作。