Поддержка шрифтов#
При создании шаблона необходимо учесть наличие используемых в нем шрифтов в ОС, в которой будет создаваться документ. В противном случае при генерации документа может возникать ошибка или не отображаться текст в сгенерированном документе.
Движок шаблона JasperReports имеет дополнительную возможность: при формировании печатной формы не устанавливать шрифты в ОС, а поставлять их как расширение библиотеки, которое подключает шрифты в момент генерации. DCGN подключает расширения:
jasperreports-font, которое содержит шрифты семейства DejaVu:
DejaVu Sans.
DejaVu Sans Mono.
DejaVu Serif.
jasperreports-fonts-liberation, которое содержит шрифты семейства Liberation:
Liberation Sans.
Liberation Serif.
Liberation Mono.
Важно!
Шрифты Liberation — общее название трех семейств шрифтов TrueType: Liberation Sans, Liberation Serif и Liberation Mono. Они метрически эквивалентны коммерческим шрифтам компании Monotype: Arial, Times New Roman и Courier New. При указании шрифтов правообладателя Monotype: Arial, Times New Roman и Courier New в разметке шаблонов движка JasperReports, документы будут генерироваться со шрифтами Liberation Sans, Liberation Serif и Liberation Mono соответственно. При использовании специальных символов, например символа валюты, в шрифтах Arial, Times New Roman и Courier New в разметке шаблонов движка JasperReports, убедитесь в наличие данного специального символа в шрифтах Liberation Sans, Liberation Serif и Liberation Mono.
В DCGN также существует функционал настройки дополнительных шрифтов при генерации документа.
При верстке шаблонов рекомендуется явно указывать необходимый шрифт.
Если шрифт шаблона не был явно задан, в DCGN для JasperReports поддерживается функциональность шрифтов по умолчанию — для генерации документа будет использован шрифт Arial из пакета шрифтов Liberation.
Если же в шаблоне указан шрифт, который отсутствует в classpath при генерации, или он не был добавлен с помощью функционала настройки дополнительных шрифтов, будет выдана ошибка об его отсутствии — net.sf.jasperreports.engine.util.JRFontNotFoundException.
ВАЖНО!
Шрифт по умолчанию не является контрактом и может измениться в других версиях компонента.
При генерации документа, на движке FreeMarker, в выходном формате TXT или HTML, шрифты в момент генерации документа не требуются
Для XDocReport при генерации документа в формате PDF необходимо выполнение одного из условий:
шрифт загружен на сервер в папку шрифтов ОС, где происходит генерация;
шрифт добавлен с помощью функционала настройки дополнительных шрифтов.
Если требуется использовать дополнительные шрифты, то их нужно добавить:
Если подключена Библиотека генерации документов Docgen-lib, то установка дополнительных шрифтов производится самостоятельно.
Если подключен Docgen service, то установка шрифтов производится по запросу к администраторам сервиса. подробнее читайте в Конфигурация подключения дополнительных шрифтов.
Рекомендации по использованию шрифтов в окружении Platform V Frontend Std, Platform V Frontend High и Load Platform V Backend
При разработке шаблонов печатных форм рекомендуется использовать шрифты разрешенные или рекомендуемые в инсталляции. При использовании специальных символов, например символа валюты в шаблонах печати, убедитесь в наличии данного символа в используемом шрифте.
Добавление шрифтов на машину/контейнер при использовании библиотеки генерации#
В данном документе не рассматриваются вопросы скачивания данных шрифтов из первичных источников и загрузки файлов со шрифтами на сервер Linux. Установка шрифтов производится в подпапку в домашней директории для текущего пользователя. Шрифты по умолчанию зависят от дистрибутива/базового образа Linux.
Управление шрифтами в Linux осуществляется утилитой fontconfig, по умолчанию дистрибутив/базовый образ Linux должен содержать ее. Если нет, то необходимо установить пакет fontconfig.
Пример установки пакетным менеджером:
apt-get:
apt-get install fontconfig;yum:
yum install fontconfig.
Проверить наличие папки
~/.fonts(например, можно перейти в эту папку командойcd ~/.fonts).Если папка
~/.fontsотсутствует, создать ее командойmkdir ~/.fonts.Скопировать в эту папку файлы шрифтов (
cp –rvf ~/.fonts— заменить на папку, в которую были предварительно скачаны шрифты).Выполнить команду
fc-cache ~/.fonts.Убедиться, что шрифты установлены в системе, используя
fc-listдля просмотра доступных шрифтов.Проверить, что необходимые шрифты сконфигурированы в fonts.conf (для поиска
find / -name "fonts.conf").
Для движка JasperReports есть возможность подключить шрифты как расширение библиотеки, подробнее читайте в Документации.
Настройка дополнительных шрифтов без использования утилиты fontconfig и расширения библиотеки JasperReports при использовании библиотеки генерации#
Для подключения дополнительных шрифтов необходимо задать значения следующих параметров:
dcgn.customFonts.enabled=true;dcgn.customFonts.path=<путь до директории с дополнительными шрифтами>.
В директории, указанной в параметре dcgn.customFonts.path, могут присутствовать файлы шрифтов, zip-архивы, содержащие файлы шрифтов, а также директории, в которых содержатся файлы шрифтов и ZIP-архивы, содержащие файлы шрифтов.
Чтобы настроить названия семейств шрифтов и используемых файлов шрифтов, задайте следующие значения параметров:
dcgn.customFonts.fineTune.enabled=true;dcgn.customFonts.fineTune.fontFamilies=<список подключаемых семейств шрифтов, используемых в приложении, разделенных точкой с запятой>;dcgn.customFonts.fineTune.fontFilesPaths=<список файлов подключаемых шрифтов, формат параметра аналогичен параметру dcgn.docgen-service.dcgn.customFonts.fineTune.fontFilesPaths. Подробнее о параметре читайте в Конфигурация подключения дополнительных шрифтов.