Как реализовать пользовательские шрифты в TCPDF

Не каждая компания использует один и тот же шрифт для всего. Обычно для каждой вещи, для которой требуются символы, например, логотипы, слоганы, флаеры, визитные карточки и счета-фактуры, есть шрифты. TCPDF широко используется для генерации PDF на лету из HTML в PHP благодаря своей простоте. Одной из самых удивительных особенностей TCPDF является то, что вы можете встроить практически любой вид шрифта (формат TrueType), однако не каждый разработчик знает, как это легко сделать. В этой статье мы хотим показать вам, как легко добавить новый пользовательский шрифт в TCPDF.

Важно, прежде чем продолжить

Вы можете импортировать только шрифты TTF или OTF в TCPDF, что означает, что вы будете работать с кодировкой UTF-8, поэтому убедитесь, что для вашего PDF-файла задан формат unicode, равный true, и UTF-8:

В противном случае, когда вы создадите PDF, вы увидите странные символы вместо того, что вам нужно. Сказав это, давайте продолжим!

1. Загрузите исходные файлы шрифта, который вы хотите

Чтобы сделать этот пример настолько простым для понимания и показать, как просто добавить пользовательский шрифт в TCPDF, мы собираемся использовать довольно странный пользовательский шрифт, а именно Just Beautiful Simplicity. Стоит сказать, что, возможно, никто не хочет такого шрифта на своих PDF-файлах:

Шрифт TCPDF Custom Font

Однако, как уже упоминалось, это просто как демо. Вы можете указать тип шрифта, который вам нужен, например, Roboto, Arial и т. Д. Из исходных файлов шрифта вам понадобится файл с TTF расширение, так как их легко найти на каждом шрифте, который вы можете найти. Исходные файлы шрифта могут быть легко найдены, если вы будете искать их в Google, вы обычно найдете zip-файлы с парой файлов внутри, которые представляют шрифт для различных типов шрифтов.

Заметка

Перед использованием шрифта важно убедиться, что он также поддерживает специальные символы (TrueType Unicode).

2. Создание файлов шрифтов, используемых TCPDF

TCPDF не может напрямую использовать файлы шрифтов для встраивания файлов шрифтов TrueType (.TTF), но вместо этого вам нужно извлечь метрики шрифтов и построить необходимые таблицы, используя предоставленную утилиту из библиотеки TCPDF. Существует 2 варианта создания 3 необходимых файлов из шрифта для TCPDF. Вы можете использовать бесплатный онлайн-сервис, который работает для любой версии TCPDF, или использовать инструмент командной строки, доступный в более новых версиях TCPDF:

A. Использование бесплатного онлайн-сервиса

Для любой версии TCPDF вы можете полагаться на бесплатный онлайн-сервис для создания необходимых файлов для этой версии. Если вы проверите папку шрифтов библиотеки TCPDF, вы увидите 3 типа файлов:

  • Сжатый файл шрифта ([fontname] .z)
  • CIDToGIDMap создан и сжат ([fontname] .ctg.z)
  • Создан файл определения шрифта ([fontname] .php)

Например, для нашего шрифта вам понадобятся 3 файла:

  • justbeatifulsimplicity.ctg.z
  • justbeatifulsimplicity.z
  • justbeatifulsimplicity.php

Вы можете использовать этот онлайн-инструмент генерировать упомянутые файлы из файла TTF. После загрузки файла и загрузки файлов, создаваемых службой, сохраните их в tcpdf/fonts папка. Выполнив любой из упомянутых выше шагов и с любой версией, вы найдете несколько новых файлов в tcpdf/fonts папка. Они представляют шрифт в тех форматах, которые нужны TCPDF. Теперь вы можете просто ввести название шрифта в SetFont метод PDF и вы готовы.

Б. Использование инструмента командной строки в более новых версиях TCPDF

С более новыми версиями TCPDF есть 2 способа достичь вашей цели:

B.A Использование утилиты командной строки

Внутри tcpdf/tools папка вы найдете tcpdf_addfont.php файл. Это можно использовать в командной строке следующим образом:

php tcpdf_addfont.php i- [your-font.ttf]

Команда автоматически создаст необходимые файлы в папке tcpdf / fonts вашего проекта и отобразит название шрифта, который можно использовать в вашем коде. Например, с другим шрифтом (Алиса и Злой монстр) командная строка показывает следующий вывод:

Генерация шрифтов командной строки

Б.Б. Ручное написание сценария

Если вы не хотите создавать файлы с помощью командной строки, вы можете вручную использовать класс, который использует командная строка. TCPDF_FONTS класс предлагает статический метод addTTFfont создавать файлы. Вы можете использовать следующий код, сохранить его в файл PHP (build-fonts.php), а затем запустить его с php build-fonts.php, Обратите внимание, что вам нужно заменить пути шрифтов:

Заметка

Как правило, вы не используете один формат шрифта, но с большим количеством презентаций, таких как Bold, Oblique и т. Д. PathTTFFiles - это массив, содержащий путь ко всем шрифтам, которые вы хотите импортировать.

пример

Чтобы сгенерировать наш PDF с предыдущим шрифтом, нам нужно всего лишь установить имя сгенерированного шрифта в SetFont метод PDF:

SetFont("justbeautifulsimplicity", '', 10);

После печати некоторого HTML-кода после создания PDF-файла с предыдущим кодом вы получите PDF-файл с пользовательским шрифтом

Пример настраиваемого шрифта TCPDF

Ссылка на основную публикацию
Adblock
detector