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

Я хотел бы добавить пользовательский шрифт в pdf, который я генерирую с использованием TCPDF. Возможно, мне что-то не хватает, но документы, похоже, устарели. Они ссылаются на addTTFfont() но я думаю, что она устарела и больше не существует в последней версии TCPDF.

Я прочитал, что мне нужно преобразовать файл ttf и поместить его в папку шрифтов, чтобы я запускал:

 php/tcpdf/tools/tcpdf_addfont.php -i php/font/rumpelstiltskin-webfont.ttf 

и он сгенерировал эти файлы, которые теперь находятся в папке шрифтов:

 rumpelstiltskinwebfont.ctg.z rumpelstiltskinwebfont.z rumpelstiltskinwebfont.php 

Затем я попытался добавить шрифт:

 $pdf->addFont('rumpelstiltskin'); $pdf->SetFont('rumpelstiltskin', '', 14, '', false); 

но я получаю сообщение об ошибке:

 TCPDF ERROR: Could not include font definition file: rumpelstiltskin 

Я разобрался в своей проблеме, я был почти там.

Вот шаг за шагом:

Сначала преобразуйте шрифт с помощью шрифта tcpdf_addfont.php в папку инструментов TCPDF:

 php/tcpdf/tools/tcpdf_addfont.php -i php/font/rumpelstiltskin-webfont.ttf 

Это создаст необходимые файлы и поместит их в папку шрифтов TCPDF. Проверьте папку шрифтов и скопируйте имя шрифта, в моем случае это было rumpelstiltskinwebfont .

В вашем коде установите шрифт, используя имя файла шрифта, и напишите строку текста:

 $pdf->SetFont('rumpelstiltskinwebfont', '', 14, '', false); $pdf->Write(0, 'Fill text', '', 0, '', true, 0, false, false, 0); 

Вот и все. Надеюсь, это поможет кому-то. 🙂

Получил этот ответ в другом вопросе и решил для меня. Вам просто нужно использовать первый параметр, путь к файлу шрифта. Работает с TTF и OTF шрифтами.

Он генерирует строку имени для использования с $pdf->SetFont($fontname, '', $font_size);

Надеюсь, поможет.


Последняя версия TCPDF автоматически преобразует шрифты в формат TCPDF, используя метод addTTFfont() . Например:

 // convert TTF font to TCPDF format and store it on the fonts folder $fontname = TCPDF_FONTS::addTTFfont('/path-to-font/FreeSerifItalic.ttf', 'TrueTypeUnicode', '', 96); // use the font $pdf->SetFont($fontname, '', 14, '', false); 

Для получения дополнительной информации и примеров, пожалуйста, проверьте страницу документации по шрифтам TCPDF .

ПРИМЕЧАНИЕ. После того, как шрифт был преобразован, TCPDF больше не требует файла TTF или вышеупомянутого вызова addTTFfont() !