我是一个网页程序员,对字体没有深入的了解,我正在努力让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 Fonts information page,但没有运气。我注意到TCPDF也有addFont()
函数(文档在这里),它似乎更容易使用,因为它不包含任何对任何字体类型的引用。然而,我无法让这个函数使用它的小文档。
如有任何帮助,我们将不胜感激。
8条答案
按热度按时间zpjtge221#
你确定你在调用
addTTFfont()
的时候得到了这个错误吗?我问这个问题的原因是因为我检查了TCPDF代码(刚刚在“Could not include font definition file”上进行了全局搜索),并且该消息只出现在addFont()
方法中。这两种方法可能有点混乱,但我几个月前写了一些笔记,我将在下面部分复制,希望它能以某种方式帮助你:
addTTFfont()
-此方法的主要功能是将字体从TTF(或OTF)转换为TCPDF需要的“原始”版本。理论上,使用它作为你的主要方法添加字体到一个文件.它会检查tcppdf字体文件夹第一,如果转换的文件不存在,它会继续进行转换.这只是一点点更多的开销,但仍然不是我的首选方法添加字体到文件,因为你需要知道什么风格的字体,你正在转换的过程中,甚至成功地工作。海事组织,最好使用这种方法来预转换任何字体,你计划使用和简单地使用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
。希望会有一些金块在这里,将有助于!祝你好运!
pexxcrt22#
TCPDF新字体添加和土耳其字符问题的解决方法。
使用转换器链接:
1.下载3个文件,
1.复制TCPDF-master/fonts
1.文件大小:$pdf->SetFont('roboto','',14);
x1c 0d1x的数据
woobm2wo3#
用生成字体来解决这个问题。
确保所有路径正确。
使用此link
记住把文件夹
make_font
放在html2pdf
的文件夹里记住正确的路径:html2pdf.class.php在index.php文件夹make_font
或
如果您有其他问题- font:无法包含字体定义文件:
这是一个新字体的正确名称的问题。
例如,在生成PDF时使用:
正确:
$html2pdf->addFont('lato i', '', 'latoi.php');
错误:
$html2pdf->addFont('lato', '', 'latoi.php');
请记住,只有2个文件生成:
latoi.php
latoi.z
你不需要ctg文件。
我希望它能帮助
yk9xbfzb4#
在我的情况下,问题是,字体路径不可写。我通过更改文件夹的权限修复了它:
var_dump(K_PATH_FONTS);
olhwl3o25#
在我的例子中,它只是一个错误的路径到(没有更多的发现)
.ttf
字体文件。为了测试,我成功地使用了驱动器D:/
,但我忘记了在我的php文件中使用addTTFfont('C:/...')
命令的代码行中将其更改回prod驱动器C:/
。不幸的是,TCPDF错误消息没有输出任何关于源文件和产生问题的代码行的信息。
ewm0tg9j6#
将dejavusans.php文件添加到font文件夹中tcppdf库中codeingiter库文件夹中。
5f0d552i7#
“0jp”此字体支持日文和中文。
n3schb8v8#
对我来说,HTML2PDF生成的字体只与«字体重量»
字符串