tcpdf 自定义字体未使用

问题描述 投票:0回答:3

我正在使用 TCPDF 库通过 PHP 生成 PDF 文件。我想使用自定义字体,因此我使用 addTTFfont 方法 添加我的自定义 TrueType 字体文件。我尝试添加的字体是来自 fontsquirrel.com 的 “Aller”

$aller = $pdf->addTTFfont($_SERVER['DOCUMENT_ROOT'].'/includes/fonts/Aller/Aller_Rg.ttf', 'TrueTypeUnicode', '', 32);

这会在我的 TCPDF 字体文件夹中创建文件 aller_rg.php、aller_rg.ctg.z 和 aller_rg.z。 K_PATH_FONTS 常量指向此目录。 addTTFfont 方法返回字体的字符串名称。如果有错误,它会返回 false,所以问题可能不在这里..

然后我尝试使用该字体

$pdf->SetFont($aller, '', 16); // or $pdf->SetFont('aller_rg', '', 16);
$pdf->Write(0,"abcdefg",'',0,'L',true,0,false,true,0);

生成的 pdf 没有任何错误。当在浏览器预览中查看时,字体显然不是 aller,而只是通用的无衬线字体。当我在 Mac 的预览应用程序中打开 pdf 时,使用 aller 字体的部分是空白的(没有文本显示)。

有人知道我做错了什么吗?

php fonts pdf-generation tcpdf
3个回答
2
投票

使用这个工具让它工作

http://www.xml-convert.com/en/convert-tff-font-to-afm-pfa-fpdf-tcpdf

它会生成 .php、.z 和 .afm 文件,并将其放入 TCPDF 字体目录中。我仍然不确定问题是什么。 addTTFfont() 方法不会创建 .afm 文件,所以也许就是这样?


1
投票

我也遇到了同样的问题:

TCPDF 转换后的字体没有显示,但使用以下链接转换的字体却显示了: http://www.xml-convert.com/en/convert-tff-font-to-afm-pfa-fpdf-tcpdf

所以我比较了两者,发现 xml-convert.com 使用“TrueType”而不是“TrueTypeUnicode”作为字体类型。对我来说,它可以将参数更改为“TrueTypeUnicode”。尝试:

$aller = $pdf->addTTFfont($_SERVER['DOCUMENT_ROOT'].'/includes/fonts/Aller/Aller_Rg.ttf', 'TrueType', '', 32);

0
投票

TCPDF:如何在 tcpdf 中添加新的自定义字体

  1. 下载所需字体的ttf文件
  2. 在浏览器中打开http://www.fpdf.org/makefont网站并上传该网站上的ttf字体
  3. 下载两个文件“customfontname.php”和“customfontname.z”
  4. 将这两个文件复制到 '/yourproject/vendor/tecnickcom/tcpdf/fonts/' 文件夹中
  5. 在 tcpdf html 代码 '$pdf->SetFont('customfontname', '', 12);' 之前在脚本中包含并设置字体
© www.soinside.com 2019 - 2024. All rights reserved.