字体对于Jasper报告的JVM不可用

字体对于Jasper报告的JVM不可用,jvm,jasper-reports,ubuntu-10.04,dynamic-jasper,Jvm,Jasper Reports,Ubuntu 10.04,Dynamic Jasper,我正在尝试使用DynamicAsper生成报告,但出现以下错误: net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'Arial' is not available to the JVM. 已安装,但我猜JVM没有使用其中的任何字体 我正在使用Ubuntu 10.04 如何解决这个问题?我只选择了“SansSerif”或“Serif”,而不是“

我正在尝试使用DynamicAsper生成报告,但出现以下错误:

net.sf.jasperreports.engine.util.JRFontNotFoundException:  
                                 Font 'Arial' is not available to the JVM.   
已安装,但我猜JVM没有使用其中的任何字体

我正在使用Ubuntu 10.04


如何解决这个问题?

我只选择了“SansSerif”或“Serif”,而不是“Arial”或“Times New Roman”

可以通过iReport创建自定义字体,并将其转换为jars文件

尝试添加行

net.sf.jasperreports.awt.ignore.missing.font=true

到您的jasperreports.properties文件


我使用IReport安装字体:

工具->选项->字体->单击安装字体

然后选择字体并单击

->导出为扩展名并键入名称myfont.jar

将这个jar和spring.jar*添加到构建路径中


*从Jaspersoft\iReport-3.7.0\iReport\modules\ext复制spring.jar我尝试安装mscorefonts,但该软件包已安装并且是最新的

sudo apt-get update
sudo apt-get install ttf-mscorefonts-installer
我尝试在文件系统中搜索字体,使用:

ls /usr/share/fonts/truetype/msttcorefonts/
这个文件夹刚刚有了自述文件,以及关于如何安装的正确说明

cat /usr/share/fonts/truetype/msttcorefonts/README
您需要为此建立internet连接:

sudo apt-get install --reinstall ttf-mscorefonts-installer

我重新安装了ttf mscorefonts安装程序(如上所示,确保接受EULA!),问题得到解决。

将字体复制到以下目录
JDK_HOME\jre\lib\font

您可以通过安装字体来实现,这意味着您可以在任何地方运行特定的应用程序。最简单的方法是将此bl行添加到jrxml文件中:

 <property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>

适用于Debian 加

至/etc/apt/sources.list中的deb和deb src,即:

deb http://ftp.debian.org/debian/ squeeze main non-free contrib
deb-src http://ftp.debian.org/debian/ squeeze main non-free contrib
然后

当然,您需要重新启动jasperserver。即:

/opt/jasperreports-server-cp-4.5.0/ctlscript.sh restart

更改您的版本/路径。

sudo apt get install msttcorefonts
可以(在我们的Ubuntu开发环境中)工作,但不是一个很好的解决方案

相反,我们将字体与应用程序捆绑在一起。他们的JAR文件捆绑了以下字体

  • Arial
  • 新罗马时代
  • 信使新
  • 连环漫画
  • 乔治亚州
  • 威尔达纳
  • 等距
下载jar的直接链接:

我在基于Spring 3并部署在Oracle Linux 6上的Weblogic 10.3上的web应用程序中遇到了这个问题。会议上提到的解决方案对我不起作用

我必须采取以下步骤: 1.将Arial*.ttf字体文件复制到JROCKIT\u JAVA\u HOME/jre/lib/fonts目录 2.在fontconfig.properties.src中输入字体 3.从Weblogic控制台重新启动群集

filename.Arial=Arial.ttf
filename.Arial_Bold=Arial_Bold.ttf
filename.Arial_Italic=Arial_Italic.ttf
filename.Arial_Bold_Italic=Arial_Bold_Italic.ttf
对于CentOS:

wget

然后:


毕竟,重新启动JVM。

用多种语言(Unicode)创建jasper报表。

1) 在ireport设计中安装字体

2) 创建字体扩展(我们将在应用程序类路径中使用)

3) 在操作系统上安装字体(可选)


4) 将字体的所有.ttf粘贴到jre->lib->font目录中(否则web应用程序将抛出错误font对JVM不可用)

实际上,我用一种非常简单的方法解决了这个问题

  • 转到您的
    主路径
    ,如
    /root
  • 创建一个名为
    .font
  • 所有字体文件
    复制到
    。字体
    ,如果使用windows,可以从
    C:\windows\fonts
    复制字体
  • sudo apt get install fontconfig
  • fc cache–fv
    重新创建字体缓存

  • 有三种方法可以避免这样的问题

    方法1:通过设置忽略缺少的字体属性。

    JRProperties.setProperty("net.sf.jasperreports.awt.ignore.missing.font", "true");
    
    JRProperties.setProperty("net.sf.jasperreports.default.font.name", "Sans Serif");
    
    或者,您可以通过在.jrxml文件中输入以下行来设置此属性

    <property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>
    
    <property name="net.sf.jasperreports.default.font.name" value="Sans Serif"/>
    
    或者,您可以通过在.jrxml文件中输入以下行来设置此属性

    <property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>
    
    <property name="net.sf.jasperreports.default.font.name" value="Sans Serif"/>
    
    
    
    方法3:通过添加缺少的字体属性。

    首先通过选择“工具>>选项>>字体>>安装字体”在IReport中安装缺少的字体,然后选择所有字体,并通过单击扩展名为.jar的“导出为扩展名”将其导出

    您可以将这个jar用于Jasperreports-font.X.X.X.jar,它将出现在您的项目库或类路径中

    JasperReports在报告模板中使用的字体不能作为系统字体或来自JR字体扩展的字体供JVM使用的情况下引发JRFontNotFoundException。这可以确保避免字体度量不匹配引起的所有问题,并且我们可以对不一致性发出早期警告

    Jasper reports试图帮助您开发报告,指出它无法正确导出您的报告,因为它找不到
    TextField
    StaticText
    中定义的字体

    <font fontName="Arial"/>
    
    来自JasperReport终极指南:

    我们强烈鼓励人们只使用源于字体的字体 扩展名,因为这是确保字体 在执行报告时,应用程序将可用 运行时。使用系统字体总是会给报告带来风险 在部署到可能没有 那些字体已安装

    有关如何在pdf中正确呈现字体的StackOverflow链接

    分两步解决方案(如果您使用的是centOS)

  • 下载Microsoft core字体rpm软件包

    [root@WEBSVR~/]# wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm
    
    [root@WEBSVR~/]# rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm
    
  • 安装rpm软件包

    [root@WEBSVR~/]# wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm
    
    [root@WEBSVR~/]# rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm
    

  • 查看Windows上生成的文档时遇到问题吗

    您可以简单地尝试一个好的解决方案:

    yum-install-xorg-x11-font-utils-fontconfig

    rpm-i

    在此之后,我需要重新启动我的系统CentOS6


    来源:

    如果您在项目中使用maven,只需将jasper字体依赖项添加到pom.xml即可:

    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports-fonts</artifactId>
        <version>6.8.1</version>
    </dependency>
    
    
    net.sf.jasperreports
    jasperreports字体
    6.8.1
    
    在上安装缺少的字体