Работа с пользовательскими шрифтами в 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.

FastReport FastReport ASP.NET ASP.NET Online Designer Online Designer WebReport WebReport
10 февраля 2025

Как попробовать FastReport .NET WEB перед покупкой

Протестировав WEB пак перед покупкой, вы сможете сделать осознанный выбор: подходит ли вам FastReport .NET для ваших задач.
14 марта 2023

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

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

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

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