但问题是:
1.当操作系统是Linux时:生成的pdf为空
我尝试过这些方法:
1.在我的应用程序的类路径中复制所有必需的字体 2.在Linux机器上安装所有必需的字体
3.在JRE / lib / fonts中复制所有必需的字体
但问题仍未解决......
任何帮助都会得到满足吗?
答案 0 :(得分:1)
字体通常是碧玉中的问题。您可以在应用程序中打包所需的字体,如下所示:
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
目录中添加字体根据此操作方法,您可以将所有字体添加到应用程序中,这样您就不必担心代码执行的操作系统。
上面使用字体的示例 Arial,Helvetica,sans-serif
一些解释:
答案 1 :(得分:1)
如果您的Linux使用OpenJDK,这是问题,OpenJDK有常规字体和一些图形图表的问题,解决问题安装“sun / Oracle jdk”,所有问题都将完成
答案 2 :(得分:0)
在字体问题期间可能会发生此问题。我已经使用以下命令克服了这些问题。
sudo apt-get install --reinstall ttf-mscorefonts-installer
sudo apt-get install ubuntu-restricted-extras ttf-mscorefonts-installer
安装后需要重新启动服务器。如果您使用的是tomcat,则需要重新启动它。