jasper-reports 在 linux 中生成空 pdf

jasper-reports generate empty pdf in linux

  1. 我用过 jasper-reports 3.*
  2. 我的应用程序服务器是 jboss
  3. OS 是 windows:一切正常,生成的 pdf 显示正确

但问题是:
1.当OS为Linux时:生成的pdf为空

原因:
1.maybe 字体不存在!!

i have tried these ways :
1.copy all necessary fonts in my application's class path
2.install all necessary fonts on Linux machine
3.copy all necessary fonts in JRE/lib/fonts

但问题仍未解决...

需要任何帮助吗?

字体通常是 jasper 中的问题。您可以像这样在您的应用程序中打包您需要的字体:

  1. 创建一个名为 jasperreports_extension.properties
  2. 的文件
  3. 将以下行添加到此属性文件中:

net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory net.sf.jasperreports.extension.simple.font.families.arialfontsfamily=fonts/arial/arialfontsfamily.xml

  1. 在目录fonts/arial/中添加字体描述xml(文件应按照属性文件中的定义命名-> arialfontsfamily.xml)

    <?xml version="1.0" encoding="UTF-8"?> <字体系列> <fontFamily name="Arial"> <正常><![CDATA[fonts/arial/Arial.ttf]]></正常> <粗体><![CDATA[fonts/arial/Arial_Bold.ttf]]></粗体> <斜体><![CDATA[fonts/arial/Arial_Italic.ttf]]></斜体> <boldItalic><![CDATA[fonts/arial/Arial_Bold_Italic.ttf]]></boldItalic> <pdfEncoding>身份-H</pdfEncoding> <pdfEmbedded><![CDATA[true]]></pdfEmbedded> <导出字体> <export key="net.sf.jasperreports.html">Arial、Helvetica、sans-serif</export> <export key="net.sf.jasperreports.xhtml">Arial、Helvetica、sans-serif</export> </exportFonts><br> </fontFamily> </fontFamilies>

  2. 添加目录fonts/arial

    中的字体
    • Arial.ttf
    • Arial_Bold.ttf
    • Arial_Italic.ttf
    • Arial_Bold_Italic.ttf

根据此操作指南,您可以将所有字体添加到您的应用程序中,这样您就无需关心 OS 执行了哪个代码。

上面使用字体的例子Arial, Helvetica, sans-serif

一些解释:

  • 使用 你告诉 jasper 字体应该包含在 pdf 中

如果您的 Linux 使用 OpenJDK,这就是问题所在,OpenJDK 的常规字体和一些图形图表有问题,要解决问题,请安装“sun/Oracle jdk”,所有问题将完成

这个问题可能发生在字体问题期间。我已经使用以下命令克服了这些问题。

sudo apt-get install --reinstall ttf-mscorefonts-installer
sudo apt-get install ubuntu-restricted-extras ttf-mscorefonts-installer

安装后需要重新启动您的 server.If 您需要 tomcat.Need 重新启动它。