4.2.4.1. Преобразование HTML в PDF

Отчёты, имеющие формат шаблона HTML и формат вывода PDF, не всегда корректно отображают шрифты. Для решения этой проблемы добавьте в конфигурационный каталог блока Middleware (в стандартном варианте развертывания tomcat/conf/app-core) подкаталог cuba/fonts с необходимыми .ttf-шрифтами. Кроме того, можно использовать шрифты из операционной системы путем указания пути к ним в свойстве приложения 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>