我是一个网页程序员,没有深入的字体知识,并正在努力使TCPDF包括我们的定制OpenType字体。我们已经购买了OpenType字体文件(.oft),它不受任何形式的DRM保护。
很多关于这个错误信息的问题最终都得到了同样的建议。我已经为TCPDF (755)使用的文件夹设置了正确的文件权限,并且使用addTTFfont()包括.ttf TrueType字体没有问题,如下所示:
$pdf->addTTFfont('/path-to-font/DejaVuSans.ttf', 'TrueTypeUnicode', '', 32);
因此,我编写了以下代码,以包含我们的OpenFont类型。addTTFfont()文档似乎表明了对OpenTypeUnicode和OpenType参数的支持。
$pdf->addTTFfont('/path-to-font/customfont.otf', 'OpenTypeUnicode', '', 96);
其结果是:
TCPDF ERROR: Could not include font definition file:
我们使用的是TCPDF v6.0.020,到目前为止,我一直在阅读TCPDF字体信息页面。我注意到TCPDF还有addFont()函数(这里的文件),因为它不包含任何字体类型的引用,因此使用起来似乎更明显。但是,我无法让这个函数与它所拥有的少量文档一起工作。
任何帮助都将不胜感激。
发布于 2013-10-16 03:04:32
您确定在调用addTTFfont()时收到了错误吗?我之所以问这个问题,是因为我检查了TCPDF代码(刚刚对“未能包含字体定义文件”进行了全局搜索),而该消息只出现在addFont()方法中。
这两种方法可能有点混乱,但几个月前我给自己写了一些注释,我将在下面部分复制,希望它能对您有所帮助:
addTTFfont() -该方法的主要功能是将字体从TTF (或OTF)转换为TCPDF所需的“原始”版本。从理论上讲,这个函数的实现方式可以作为向文档添加字体的主要方法。它将首先检查tcpdf字体文件夹,如果转换的文件不存在,它将继续并进行转换。这只是稍微多了一点开销,但仍然不是我最喜欢的将字体添加到文件中的方法,因为您需要知道您正在转换的字体样式,以便进程甚至成功地工作。海事组织,最好使用此方法预转换您计划使用的任何字体,只需使用addFont()将“原始”版本添加到文档中。AddFont() --这增加了一个“原始”(即。(已转换)到文档的字体,这意味着它随后可用于编写文本。SetFont() --这将为您编写的下一个文本块设置字体。因此,我将使用addTTFfont()将字体预转换为“原始”版本,然后在实际创建PDF的代码中使用addFont()和setFont()。
如果addFont()在上面的错误消息中失败了,这意味着它找不到字体定义文件。请记住,如果您使用样式集('i‘、'b’、'bi‘等)调用addFont(),那么它所做的就是将其附加到文件名(扩展名之前)。
最重要的是,您需要确保对addTTFFont()的调用生成“原始”字体文件,并将它们保存到您的字体文件夹中。每个样式应该有三个文件,扩展名为.php、.z和.ctg.z。因此,如果您转换了一个名为blah.ttf的字体,您将得到blah.php、blah.z和blah.ctg.z。如果您转换blah bold.ttf,TCPDF会发现它是粗体字体,并将'b‘附加到文件名的末尾:blahb.php、blahb.z和blahb.ctg.z。
希望这里会有一些有用的金块!祝好运!
发布于 2018-03-23 12:02:25
TCPDF新字体添加和土耳其字符问题的解决方法。
使用转换器链接:

发布于 2017-02-16 11:25:54
通过生成字体来解决这个问题。
确保所有路径都是正确的。
使用此链接
记住将文件夹make_font放在html2pdf的文件夹中
关于正确路径的记住: html2pdf.class.php in文件夹make_font in index.php
或
如果您有其他问题-字体:无法包括字体定义文件:
这是一个问题,你的新字体的正确名称。
例如,在生成pdf时使用:
正确:$html2pdf->addFont('lato i', '', 'latoi.php');
不正确:$html2pdf->addFont('lato', '', 'latoi.php');
请记住,只有两个文件生成:
latoi.php latoi.z
你不需要任何ctg文件。
我希望它能帮上忙
https://stackoverflow.com/questions/19385618
复制相似问题