TCPDF-在iPad上查看PDF时,嵌入式ttf字体不显示

TCPDF-在iPad上查看PDF时,嵌入式ttf字体不显示,pdf,fonts,tcpdf,truetype,Pdf,Fonts,Tcpdf,Truetype,我创建了一个网站,它使用tcpdf动态创建PDF,并将字体嵌入到PDF中。用户可以选择一系列标准字体,如Arial、Verdana等。然后系统直接从我的服务器选择ttf字体,并使用下面的代码嵌入。这种字体的文本在大多数pdf浏览器上都可以看到,但iPad/iPhone的viewer没有显示出来。我下载了一个新的(随机)版本的Arial.ttf作为测试(不确定文件中的差异,但现在似乎显示良好) 我需要对许多字体执行此操作,但我在黑暗中拍摄了一点,因为我不知道字体中的哪些内容可能会导致它无法嵌入。是

我创建了一个网站,它使用tcpdf动态创建PDF,并将字体嵌入到PDF中。用户可以选择一系列标准字体,如Arial、Verdana等。然后系统直接从我的服务器选择ttf字体,并使用下面的代码嵌入。这种字体的文本在大多数pdf浏览器上都可以看到,但iPad/iPhone的viewer没有显示出来。我下载了一个新的(随机)版本的Arial.ttf作为测试(不确定文件中的差异,但现在似乎显示良好)

我需要对许多字体执行此操作,但我在黑暗中拍摄了一点,因为我不知道字体中的哪些内容可能会导致它无法嵌入。是否有人知道ttf字体中的哪些内容会导致它无法显示?在其他查看器上显示效果良好,并且在Acrobat文档属性中嵌入显示

谢谢

$fontname = $pdf->addTTFfont('/tcpdf/fonts/custom/'.$ttfFile.'.ttf', 'TrueTypeUnicode', '', 32);
//使用字体

$pdf->SetFont($fontname, '', $fontPoints, '', 'false');

$subset的参数错误。您将其设置为“false”(带引号)。它应为布尔值true

    <?php
          ...
          // Wrong
          $pdf->SetFont($fontname, '', $fontPoints, '', 'false');

          // Right
          $pdf->SetFont($fontname, '', $fontPoints, '', true); 
          ...
    ?>

它为什么起作用?

因为它嵌入了整个字体,而不仅仅是一个子集。 诀窍是将方法$pdf->SetFont()中的参数$subset设置为true

PDF正在与

iPad(IOS 7)、iPhone(IOS 7)、Windows 7、MACOSX 10.9

我的PDF创建环境

Mac10.9上的Apache2、PHP5.3.x、TCPDF v6.0.078

文件


您所说的“不显示”是什么意思-文本实际上完全不在那里?你能分享其中一个pdf文件以便查看吗?嗨,谢谢你的回复,字体在chrome pdf阅读器和safari上都可以看到,但在iPhone/iPad上的标准查看器中看不到。下面是一个字体选择的示例,所有字体都通过大多数查看器显示,有些字体在iPhone/iPad上缺失手机。它们显然是“嵌入式子集”,根据Acrobat的说法,任何想法都会非常有用。我通过callas pdfToolbox preflight(警告,我隶属于这家公司)运行了你的文件,我看到了两件可能奇怪的事情。首先,你的文件还包含两种Helvetica字体,显然在页面上没有使用(且未嵌入)。您的文件返回时,所使用的Palatino字体也出现了一些错误。这是未显示的字体吗?实际上,$subset应设置为false(布尔值false,不带引号),以便将整个字体嵌入到文档中,并正确显示在El Capital预览、iOS等中。