未使用tcpdf自定义字体


tcpdf custom font is not being used

我正在使用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字体的部分是空白的(没有文本显示)。

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

使用此工具使其工作

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

它会生成一个.php、.z和.am文件,这些文件放在TCPDF字体目录中。我仍然不确定问题出在哪里。addTTFfont()方法不会创建.am文件,所以可能就是这样?

我遇到了同样的问题:

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);