我创建了一个使用tcpdf动态创建PDF的网站,并将字体嵌入到PDF中。用户可以从一系列标准字体中选择,如Arial,Verdana等。然后系统直接从我的服务器中选择一个ttf字体,并使用下面的代码嵌入。在大多数pdf查看器上可以看到带有该字体的文本,但是iPad/iPhone's
查看器没有显示它。我下载了一个新的(随机)版本的Arial.ttf作为测试(不确定文件中的差异,但它现在似乎显示正常。
我需要为许多字体执行此操作,但是我在黑暗中拍摄了一下因为我不知道字体中的内容可能会导致它不被嵌入。有谁知道ttf字体会导致它不显示?在其他观看者和节目中显示是否可以嵌入Acrobat文档属性?
由于
$fontname = $pdf->addTTFfont('/tcpdf/fonts/custom/'.$ttfFile.'.ttf', 'TrueTypeUnicode', '', 32);
//使用字体
$pdf->SetFont($fontname, '', $fontPoints, '', 'false');
答案 0 :(得分:3)
$ subset的参数错误。您将其设置为“false”(带引号)。它应该是布尔值true。
<?php
...
// Wrong
$pdf->SetFont($fontname, '', $fontPoints, '', 'false');
// Right
$pdf->SetFont($fontname, '', $fontPoints, '', true);
...
?>
为什么会有效?
因为它嵌入了整个字体,而不仅仅是一个子集。 诀窍是将方法$ pdf-&gt; SetFont()中的参数$ subset设置为true。
http://www.tcpdf.org/doc/code/classTCPDF.html#a471562985997be1573d387f0aeae6964
PDF正在使用
iPad(IOS 7),iPhone(IOS 7),Windows 7,MACOSX 10.9。
我的PDF创建环境
Apache 2,MAC 10.9,PHP 5.3.x,TCPDF v6.0.078
<强>文件强>