Работа с пользовательскими шрифтами в FastReport Online Designer

20.12.2021

FastReport Online Designer

В недавнем релизе FastReport Online Designer появилась возможность добавлять в отчет любые шрифты. Это нововведение позволяет разнообразить создаваемые отчеты.

Добавленные шрифты

Для того, чтобы использовать нестандартные шрифты, нужно:

  • развернуть сервер шрифтов;
  • определить настройки шрифтов с помощью css;
  • добавить нужные шрифты и конфигурацию в FastReport WebReport;
  • сконфигурировать FastReport Online Designer в Online Designer Builder.

Серверная часть

Начнем с сервера шрифтов. Он должен возвращать css-файл с настройками шрифта, в зависимости от запрашиваемого названия. Пример:

@font-face {
 font-family: 'Usually-font';
 src: url('http://localhost:58300/fonts/Usually-font.otf') format('opentype');
}

Дизайнер отправляет название запрашиваемого шрифта в GET-параметре family. Ниже приведен пример контроллера на ASP.NET:

namespace MyFontServer.Controllers
{
 [Route("fonts")]
 public class FontsController : Controller
 {
 IHostingEnvironment _hostingEnvironment;
 public FontsController(IHostingEnvironment hostingEnvironment)
 {
 _hostingEnvironment = hostingEnvironment;
 }
 public IActionResult Index(string family)
 {
 return new PhysicalFileResult(Path.GetFullPath($"wwwroot/fonts/{family}.css"), "text/css");
 }
 
 }
}

На этот контроллер будет идти запрос с параметром family - это название запрашиваемого шрифта. Ответом будет css-файл, в котором с помощью @font-face описан нужный шрифт. Также дизайнер посылает GET-параметр report_id, содержащий идентификатор текущего отчета.

Затем необходимо добавить файлы шрифтов в FastReport Web Report, используемый дизайнером. Например:

FastReport.Utils.Config.PrivateFontCollection.AddFontFile("wwwroot/fonts/Usually-font.otf");

Это нужно для того, чтобы при подготовке отчета использовался нужный шрифт.

Для того, чтобы шрифты были доступны для выбора в дизайнере, необходимо указать семейства в “get custom config”. Это переменная окружения, содержащая в себе адрес дополнительной конфигурации дизайнера. Значение этой переменной присваивается в FastReport Online Designer Builder:

Конфигурация “get custom config” в FastReport Online Designer Builder

Сама конфигурация может выглядеть так: 

{
 "font-names": [
 "Usually-font",
 "Liberation sans",
 "Excelorate-Font"
 ]
}

Конфигурация дизайнера в FastReport Online Designer Builder

Перейдем к настройке дизайнера. Открываем FastReport Online Designer Builder и находим раздел Config, где есть блок “use font server for custom fonts”.

Конфигурация “use custom font server” в FastReport Online Designer Builder

Эта опция позволяет сконфигурировать дизайнер для работы с определенным сервером шрифтов. Здесь необходимо поставить флажок “use custom font server?” и задать адрес сервера шрифтов. Например: 

Конфигурация “use custom font server” в FastReport Online Designer Builder

Результат

Теперь при запуске дизайнер получает список доступных шрифтов, благодаря конфигурации get custom config:

Список доступных шрифтов

И затем при выборе нужного шрифта, загружает его с указанного сервера шрифтов:

Запрос на получение настроек шрифта с сервера

Запрос на получение шрифта с сервера

Шрифт также работает при подготовке отчета благодаря тому, что он был добавлен в WebReport:

Новый шрифт при подготовке отчета

Подведем итог. Мы с вами сделали конфигурацию сервера шрифтов на ASP.NET, рассмотрели настройки back-end’а и front-end’а дизайнера. Также научились добавлять и конфигурировать пользовательские шрифты в FastReport Online Designer.

14 марта 2023

Будущее генерации отчетов с помощью Blazor WebAssembly

Пошаговая инструкция по созданию демо приложения на .NET 6 и 7 прямо в браузере с помощью Blazor WebAssembly в FastReport .NET.
7 марта 2023

Настройка API для сборки FastReport Online Designer

Рассказываем об автоматизации процесса сборки FastReport Online Designer Builder через API при изменении версии продукта.
14 февраля 2023

Как настроить веб-сервер Apache2 для FastReport .NET

Запускаем веб-сервер Apache2 в операционной системе Linux для FastReport .NET и .NET 5 с помощью нескольких простых команд.