В статье будет обсуждаться работа со шрифтами в контексте использования библиотеки fpPDF для создания PDF-документов. Особое внимание будет уделено вопросам, связанным с возможностями и ограничениями использования шрифтов, содержащих символы китайского (и других восточно-азиатских) письма. В качестве примера будет приведен код, который демонстрирует, как можно решить возникающие проблемы с отображением и печатью текста на китайском языке в PDF-документах.
Введение
fpPDF является частью набора компонентов FCL (Free Component Library) для разработки под Delphi. Он позволяет создавать PDF-документы, поддерживает различные форматы шрифтов, включая те, что содержат символы восточно-азиатского письма. Однако, не все шрифты, поддерживаемые операционными системами, могут быть использованы напрямую в fpPDF. В частности, файлы шрифтов в формате .ttc (TrueType Collection) могут не поддерживаться, что вызывает проблемы с отображением китайских символов в PDF-документах.
Основная часть
Проблема с использованием шрифтов .ttc
Файлы шрифтов в формате .ttc содержат несколько шрифтов, упакованных в один файл. fpPDF не поддерживает такой формат, и для использования в PDF-документах необходимо конвертировать шрифты в формат .ttf (TrueType Font).
Решение проблемы
Конвертация шрифтов .ttc в .ttf
Для конвертации шрифтов из формата .ttc в .ttf можно использовать инструменты, такие как FontForge. Необходимо извлечь нужный шрифт из файла .ttc и сохранить его в формате .ttf.
Использование шрифтов .ttf в fpPDF
После конвертации шрифт можно использовать в fpPDF аналогично шрифтам .ttf, поддерживаемым из коробки. Необходимо добавить шрифт в документ, используя функцию Doc.AddFont.
Пример кода
// Добавление шрифта в документ
FontCh := Doc.AddFont('путь_к_файлу_шрифта.ttf', 'имя_шрифта');
if FontCh = nil then
// Обработка ошибки при добавлении шрифта
else
// Продолжение работы с документом
// Добавление текста с использованием шрифта
Doc.DrawText('Текст для отображения', 'имя_шрифта', X, Y);
Заключение
При работе со шрифтами в fpPDF, важно понимать, какие форматы шрифтов поддерживаются, и уметь их конвертировать. В случае с китайскими символами, часто требуется конвертация шрифтов .ttc в .ttf, а также убедиться, что шрифт корректно добавлен в документ и используется для отображения текста.
Приведенный пример кода демонстрирует базовые шаги по работе со шрифтами в fpPDF. Обратите внимание, что для реального проекта потребуется более глубокая настройка и тестирование, учитывая специфику используемых шрифтов и требований к макетированию документа.
Статья посвящена вопросам работы со шрифтами в библиотеке fpPDF, с акцентом на использование шрифтов с китайскими символами и необходимость их конвертации для корректного отображения в PDF-документах.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.