首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用tcpdf创建PDF在iphone上显示为空白

用tcpdf创建PDF在iphone上显示为空白
EN

Stack Overflow用户
提问于 2013-01-18 04:15:51
回答 4查看 2.9K关注 0票数 18

我正在使用tcpdf从HTML生成PDF。一切都运行得很好,当我在我的电脑上查看PDF时,我可以很好地看到它,但由于某种原因,当我在我的iPhone上查看PDF时,它显示为空白。我所能看到的是我创建的包含值的边框,但是没有值显示。

以下是我的代码

代码语言:javascript
复制
require_once('/tcpdf/tcpdf/config/lang/eng.php');
require_once('/tcpdf/tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->setLanguageArray($l);
$pdf->SetFont('dejavusans', '', 10);
$pdf->AddPage();
$html = file_get_contents('http://www.website.com/invoice.php?invoice_id='.$invoice_id);
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->lastPage();
$pdf->Output('/html/admin/emailattachements/invoice.pdf', 'F');

在最后一行。当我稍后使用电子邮件脚本获取PDF并将其发送给客户时,我会将其复制到该目录中。

编辑:已解决

我发现它就是我用来制作PDF的字体。iPhone不能读取dejavusans :)我把它改成了'times‘,它工作得很好

编辑:更新

自从这篇文章以来,我不得不用tcpdf创建了更多的PDF,虽然我真的不能解释为什么有些字体不能工作,而另一些字体我最近在http://www.tcpdf.org/fonts.php上应用了一些建议并应用了

代码语言:javascript
复制
$fontname = $pdf->addTTFfont('/path-to-font/DejaVuSans.ttf', 'TrueTypeUnicode', '', 32);

通过手动添加字体,设置字体文件路径,并手动上传文件,我能够获得不起作用的现有字体,并实际使它们正常工作。

EN

回答 4

Stack Overflow用户

发布于 2014-04-21 20:07:41

更改以下行:

代码语言:javascript
复制
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

$pdf->SetFont('dejavusans', '', 10);

至:

代码语言:javascript
复制
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false);

$pdf->SetFont('helvetica', '', 10, '', true);

然后再检查。

票数 2
EN

Stack Overflow用户

发布于 2014-06-06 21:12:21

如果没有AddFont方法,我不确定它是如何工作的,但我也有同样的问题,添加第四个参数$subset = false可以解决这个问题。

$subset (mixed)如果为true,则仅嵌入字体的子集(仅存储与所用字符相关的信息);如果为false,则嵌入整个字体;如果为' default‘,则使用使用setFontSubsetting()设置的默认值。此选项仅对TrueTypeUnicode字体有效。如果要使用户能够更改文档,请将此参数设置为false。如果您设置了字体的子集,则接收您的PDF的人需要使用与您相同的字体才能对您的PDF进行更改。PDF的文件大小也会更小,因为您只嵌入了字体的一部分。

代码语言:javascript
复制
$pdf->AddFont('dejavusans', '', 'dejavusans', false);
$pdf->AddFont('dejavusans', 'B', 'dejavusans', false);

$pdf->SetFont('dejavusans', '', 10);

dejavusans修复了多字节字符的许多问题,因此不可能简单地更改为helvetica。通过进行此更改,我们发现PDF的大小增加了一倍以上。

这与@user3548394的想法相同,但只需更改一次。

票数 1
EN

Stack Overflow用户

发布于 2014-02-28 14:09:13

检查你正在使用的字体类型,就像html一样,但它不会后退。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14387379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档