0

我正在使用 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没有任何错误。当在浏览器预览中查看时,字体显然不是过敏,而只是一种通用的无衬线字体。当我在 Mac 的预览应用程序中打开 pdf 时,使用过敏字体的部分是空白的(没有文本显示)。

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

4

2 回答 2

1

使用这个工具让它工作

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

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

于 2013-07-26T21:56:51.587 回答
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);
于 2013-11-12T12:54:36.897 回答