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