Содержание
Не каждая компания использует один и тот же шрифт для всего. Обычно для каждой вещи, для которой требуются символы, например, логотипы, слоганы, флаеры, визитные карточки и счета-фактуры, есть шрифты. TCPDF широко используется для генерации PDF на лету из HTML в PHP благодаря своей простоте. Одной из самых удивительных особенностей TCPDF является то, что вы можете встроить практически любой вид шрифта (формат TrueType), однако не каждый разработчик знает, как это легко сделать. В этой статье мы хотим показать вам, как легко добавить новый пользовательский шрифт в TCPDF.
Важно, прежде чем продолжить
Вы можете импортировать только шрифты TTF или OTF в TCPDF, что означает, что вы будете работать с кодировкой UTF-8, поэтому убедитесь, что для вашего PDF-файла задан формат unicode, равный true, и UTF-8:
В противном случае, когда вы создадите PDF, вы увидите странные символы вместо того, что вам нужно. Сказав это, давайте продолжим!
1. Загрузите исходные файлы шрифта, который вы хотите
Чтобы сделать этот пример настолько простым для понимания и показать, как просто добавить пользовательский шрифт в TCPDF, мы собираемся использовать довольно странный пользовательский шрифт, а именно Just Beautiful Simplicity. Стоит сказать, что, возможно, никто не хочет такого шрифта на своих PDF-файлах:
Однако, как уже упоминалось, это просто как демо. Вы можете указать тип шрифта, который вам нужен, например, 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-файл с пользовательским шрифтом