Я хотел бы добавить пользовательский шрифт в 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()
!