【发布时间】:2013-01-01 11:34:01
【问题描述】:
我正在使用 tcpdf 从 HTML 生成 PDF。一切正常,当我在计算机上查看 PDF 时,我可以正常查看,但由于某种原因,当我在 iPhone 上查看 PDF 时,它显示为空白。我只能看到我创建的边框,其中包含值,但没有显示任何值。
这是我的代码
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 上应用了一些建议并应用了
$fontname = $pdf->addTTFfont('/path-to-font/DejaVuSans.ttf', 'TrueTypeUnicode', '', 32);
通过手动添加字体并设置字体文件路径并手动上传文件,我能够获得现有的不起作用的字体并真正让它们工作。
【问题讨论】:
-
Ummmm...你的代码是什么,所以我们也许可以重复这项工作。
-
现在看了不知道是不是字体
-
哈哈,就是这样。是字体 :) 我把它改成了 'times' 就可以了
-
我不太确定它为什么不工作那么容易解释......我有两个几乎相同的文件。一个与 dejavusans 一起工作,另一个则不。更改为
helvetica有效。 -
我在 akeebasubs 发票上也遇到过这个问题(它使用 tcpdf)。问题出现在运行 ios5 的 iphone 和运行 ios7 的 ipad 上。