我想在我使用TCPDF生成的pdf中添加自定义字体.我可能会遗漏一些东西,但文档似乎已经过时了.他们正在引用该addTTFfont()
功能,但我认为它已被弃用,并且在最新版本的TCPDF中不再存在.
我读到我需要转换ttf文件并将其放在fonts文件夹中,所以我运行:
php/tcpdf/tools/tcpdf_addfont.php -i php/font/rumpelstiltskin-webfont.ttf
Run Code Online (Sandbox Code Playgroud)
它生成了这些文件现在在fonts文件夹中:
rumpelstiltskinwebfont.ctg.z
rumpelstiltskinwebfont.z
rumpelstiltskinwebfont.php
Run Code Online (Sandbox Code Playgroud)
然后我尝试添加字体:
$pdf->addFont('rumpelstiltskin');
$pdf->SetFont('rumpelstiltskin', '', 14, '', false);
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
TCPDF ERROR: Could not include font definition file: rumpelstiltskin
Run Code Online (Sandbox Code Playgroud)
Dev*_*v01 10
我想出了我的问题,我几乎就在那里.
这是一步一步:
首先使用TCPDF工具文件夹中的tcpdf_addfont.php工具字体转换字体:
php/tcpdf/tools/tcpdf_addfont.php -i php/font/rumpelstiltskin-webfont.ttf
Run Code Online (Sandbox Code Playgroud)
这将生成所需的文件并将它们放在TCPDF字体文件夹中.检查字体文件夹并复制字体名称,就我而言rumpelstiltskinwebfont
.
在您的代码中使用字体文件的名称设置字体并写入一行文本:
$pdf->SetFont('rumpelstiltskinwebfont', '', 14, '', false);
$pdf->Write(0, 'Fill text', '', 0, '', true, 0, false, false, 0);
Run Code Online (Sandbox Code Playgroud)
而已.希望这有助于某人.:)
在另一个问题中得到了这个答案并为我解决了。你只需要使用第一个参数,字体文件的路径。使用 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);
Run Code Online (Sandbox Code Playgroud)
如需更多信息和示例,请查看TCPDF 字体文档页面。
注意:一旦字体被转换,TCPDF 不再需要 TTF 文件或上面对addTTFfont()
!