jasper-reports 在 linux 中生成空 pdf
jasper-reports generate empty pdf in linux
- 我用过 jasper-reports 3.*
- 我的应用程序服务器是 jboss
- 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 中的问题。您可以像这样在您的应用程序中打包您需要的字体:
- 创建一个名为 jasperreports_extension.properties
的文件
- 将以下行添加到此属性文件中:
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"?>
<字体系列>
<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>
添加目录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 重新启动它。
- 我用过 jasper-reports 3.*
- 我的应用程序服务器是 jboss
- 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 中的问题。您可以像这样在您的应用程序中打包您需要的字体:
- 创建一个名为 jasperreports_extension.properties 的文件
- 将以下行添加到此属性文件中:
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"?> <字体系列> <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>
添加目录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 重新启动它。