[英]jasper-reports generate empty pdf in linux
但问题是:
1. 当操作系统为 Linux 时:生成的 pdf 为空
造成的:
1.也许字体不存在!!
我试过这些方法:
1.在我的应用程序的类路径中复制所有必需的字体
2.在Linux机器上安装所有必要的字体
3.复制JRE/lib/fonts中所有需要的字体
但是问题还是没有解决...
有什么帮助吗?
如果您的 Linux 使用 OpenJDK,这就是问题,OpenJDK 有常规字体和一些图形图表的问题,要解决问题,请安装“sun/Oracle jdk”,所有问题都会解决
字体通常是 jasper 中的问题。 你可以像这样在你的应用程序中打包你需要的字体:
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
在目录 fonts/arial/ 中添加字体描述 xml(文件应命名为属性文件 -> arialfontsfamily.xml 中定义的名称)
<?xml version="1.0" encoding="UTF-8"?> <fontFamilies> <fontFamily name="Arial"> <normal><![CDATA[fonts/arial/Arial.ttf]]></normal> <bold><![CDATA[fonts/arial/Arial_Bold.ttf]]></bold> <italic><![CDATA[fonts/arial/Arial_Italic.ttf]]></italic> <boldItalic><![CDATA[fonts/arial/Arial_Bold_Italic.ttf]]></boldItalic> <pdfEncoding>Identity-H</pdfEncoding> <pdfEmbedded><![CDATA[true]]></pdfEmbedded> <exportFonts> <export key="net.sf.jasperreports.html">Arial, Helvetica, sans-serif</export> <export key="net.sf.jasperreports.xhtml">Arial, Helvetica, sans-serif</export> </exportFonts>
</fontFamily> </fontFamilies>
在fonts/arial目录下添加字体
根据this how-to,您可以将所有字体添加到您的应用程序中,这样您就无需关心代码执行的是哪个操作系统。
上面使用字体Arial、Helvetica、sans-serif的示例
一些解释:
在字体问题期间可能会发生此问题。 我已经使用以下命令克服了这些问题。
sudo apt-get install --reinstall ttf-mscorefonts-installer
sudo apt-get install ubuntu-restricted-extras ttf-mscorefonts-installer
安装后需要重启服务器。如果你在tomcat上工作,需要重启。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.