我想在我使用TCPDF生成的pdf中添加自定义字体。我可能会遗漏一些东西,但the docs似乎已经过时了。它们引用了addTTFfont()
函数,但我认为它已被弃用,并且在最新版本的TCPDF中不再存在。
我读到我需要转换ttf文件并将其放在fonts文件夹中,所以我跑了:
php/tcpdf/tools/tcpdf_addfont.php -i php/font/rumpelstiltskin-webfont.ttf
并生成这些文件,这些文件现在位于fonts文件夹中:
rumpelstiltskinwebfont.ctg.z
rumpelstiltskinwebfont.z
rumpelstiltskinwebfont.php
然后我尝试添加字体:
$pdf->addFont('rumpelstiltskin');
$pdf->SetFont('rumpelstiltskin', '', 14, '', false);
但是我收到了一个错误:
TCPDF ERROR: Could not include font definition file: rumpelstiltskin
答案 0 :(得分:10)
我想出了我的问题,我几乎就在那里。
这是一步一步:
首先使用TCPDF工具文件夹中的tcpdf_addfont.php工具字体转换字体:
php/tcpdf/tools/tcpdf_addfont.php -i php/font/rumpelstiltskin-webfont.ttf
这将生成所需的文件并将它们放在TCPDF字体文件夹中。检查fonts文件夹并复制字体名称,在我的情况下是rumpelstiltskinwebfont
。
在您的代码中使用字体文件的名称设置字体并写下一行文字:
$pdf->SetFont('rumpelstiltskinwebfont', '', 14, '', false);
$pdf->Write(0, 'Fill text', '', 0, '', true, 0, false, false, 0);
就是这样。希望这有助于某人。 :)
答案 1 :(得分:3)
在another question得到了这个答案并为我解决了。您只需要使用第一个参数,即字体文件的路径。使用TTF和OTF字体。
它生成一个用于$pdf->SetFont($fontname, '', $font_size);
希望它有所帮助。
最新的TCPDF版本使用addTTFfont()
方法自动将字体转换为TCPDF格式。例如:
// 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 Fonts documentation page。
注意:转换字体后,TCPDF不再需要TTF文件或以上对addTTFfont()
的调用!
答案 2 :(得分:0)
您可以使用 http://fonts.palettize.me 转换 ttf 字体,然后将字体文件夹中未压缩的结果放入 tcpdf 类。然后你可以添加它 $pdf->SetFont('rumpelstiltskinwebfont', '', 14);使用文件名