В свежих релизах Stimulsoft Server мы внесли важные доработки в механизм обработки шрифтов. В этой статье мы подробно расскажем, как быстро подключить любые необходимые шрифты к вашей серверной конфигурации.
О чём идёт речь?
По умолчанию Docker-образ не содержит предустановленных системных шрифтов. В ситуациях, когда в отчете используется шрифт, отсутствующий в серверной среде (например, стандартный Arial), веб-браузер на стороне клиента вынужден подставлять первый попавшийся локальный шрифт. Это нередко приводит к нарушению геометрии элементов, сползанию текстовых блоков и некорректному форматированию отчетов.Подключение шрифтов через Docker Compose
Для передачи пользовательских шрифтов в контейнер используется проброс локальной директории через volumes.Пошаговая инструкция:
- Создание локальной папки: создайте каталог fonts в той же директории на хост-системе, где расположен ваш файл docker-compose.yml.
- Подготовка файлов шрифтов: положите в созданную папку нужные файлы шрифтов в формате TTF (TrueType Font) или OTF (OpenType Font). Совет!
Для полного покрытия всех стилей начертания рекомендуем загружать гарнитуру целиком. Например, для Arial это файлы:
arial.ttf - обычный
arialbd.ttf - жирный
ariali.ttf - курсив
arialbi.ttf - жирный курсив - Обновление конфигурации docker-compose.yml: добавьте монтирование созданной папки в секцию volumes сервиса server:
Важно!services: server: image: stimulsoft/server:2026.3.1 ports: - 8080:8080 volumes: - ./fonts:/usr/share/fonts/truetype/custom:ro
Флаг :ro (read-only) гарантирует, что контейнер будет использовать файлы исключительно в режиме чтения.
Почему проприетарные шрифты не входят в Docker-образ?
Популярные шрифты (включая Arial, Times New Roman, Calibri и др.) являются интеллектуальной собственностью их правообладателей (в частности, корпорации Microsoft) и защищены коммерческими лицензиями. Действующее законодательство в сфере авторских прав запрещает распространение и встраивание этих файлов в публично доступные Docker-образы без соответствующего лицензирования.По этой причине мы не имеем права поставлять их в составе дистрибутива «из коробки» - пользователи должны монтировать их самостоятельно из имеющихся у них дистрибутивов или лицензированных источников.