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

use*_*116 8 pdf fonts truetype tcpdf

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

我需要为许多字体做这个,但我在黑暗中拍摄了一点因为我不知道字体中的内容可能导致它不被嵌入.有谁知道ttf字体会导致它不显示?在其他观看者和节目中显示是否可以嵌入Acrobat文档属性?

谢谢

$fontname = $pdf->addTTFfont('/tcpdf/fonts/custom/'.$ttfFile.'.ttf', 'TrueTypeUnicode', '', 32);
Run Code Online (Sandbox Code Playgroud)

//使用字体

$pdf->SetFont($fontname, '', $fontPoints, '', 'false');
Run Code Online (Sandbox Code Playgroud)

Uwe*_*zer 3

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

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

          // Right
          $pdf->SetFont($fontname, '', $fontPoints, '', true); 
          ...
    ?>
Run Code Online (Sandbox Code Playgroud)

为什么它有效?

因为它嵌入了整个字体,而不仅仅是一个子集。诀窍是将方法 $pdf->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 创建环境

MAC 10.9、PHP 5.3.x、TCPDF v6.0.078 上的 Apache 2

文件

示例 PDF 和用于创建它的 PHP 脚本

  • 实际上, $subset 应该设置为 false (布尔值 false,不带引号),以便将整个字体嵌入到文档中并正确显示在 El Capital Preview、iOS 等中。 (2认同)