4.2.4.1. 将 HTML 转换为 PDF

具有 HTML 格式和 PDF 输出格式的模板的报表容易显示出错误的字体。要解决此问题,请将带有所需 .ttf 字体的 cuba/fonts 子目录添加到中间层配置目录(默认部署配置中的 tomcat/conf/app-core)。此外,可以通过在reporting.fontsDir应用程序属性中指定其路径来使用现有的操作系统字体。

要解决 Ubuntu 服务器上的字体问题,应该执行以下操作:

  • 安装 ttf-mscorefonts-installer 包:

    $ sudo apt-get install ttf-mscorefonts-installer
  • 设置 reporting.fontsDir 应用程序属性:

    reporting.fontsDir = /usr/share/fonts/truetype/msttcorefonts
  • 在 HTML 模板中明确指定字体,例如:

<html>
<head>
    <style type="text/css">
 * { font-family: Times New Roman; }
    </style>

另外要提到的是解析特殊字符。为避免将 HTML 转换为 PDF 时出错,建议将字段封装在 HTML 模板文件的 <![CDATA[ ]]> 标签中:

<tr>
        <td> <![CDATA[${(row.fields('book_name'))!?string!}]]> </td>
        <td> <![CDATA[${(row.fields('author'))!?string!}]]> </td>
</tr>