【问题标题】:fpdf - Viewing on mobile not workingfpdf - 在移动设备上查看不起作用
【发布时间】:2012-11-15 13:38:23
【问题描述】:

我使用 fpdf 在 php 中创建 pdf 文件。到目前为止一切正常,但无法在移动设备上查看这些 pdf。

android 上的 acrobat 阅读器正在关闭并显示文件已损坏的消息。一位客户我知道在 iPad 上打开 pdf 文件没有任何反应...... 我已经尝试创建一个空的 pdf 但行为相同。 在装有 Acrobat Reader 和 foxit 的 Windows 上一切正常。

我需要一些如何找到原因的想法。

【问题讨论】:

  • 请提供样本 PDF 进行检查。
  • @mkl:这里是:link 它应该只在底部显示一个用$this->SetLineWidth(1); $this->SetDrawColor(3,3,3); $this->Rect(185,261,17,4); $this->Ln(20); 创建的矩形,即使谷歌文档也没有显示它。

标签: php pdf mobile fpdf


【解决方案1】:

devOp 在他的评论link 中提供的文件实际上是一个损坏的 PDF,因为它在强制性 %PDF 行之前以一些垃圾开头(参见 PDF 规范 ISO 32000-1:2008):

524.41 102.05 48.19 -11.34 re S
%PDF-1.3
3 0 obj
<</Type /Page 
[...]
>>
startxref
556
%%EOF 

由于“524.41 102.05 48.19 -11.34 re S”这一行,任何 PDF 查看器都可能将文件视为损坏而拒绝。但是,一些查看器不需要 %PDF 标记作为第一文档行,但允许在其前面放置有限数量的垃圾。例如,Windows 上的 Acrobat Reader 只要求标记位于前一千字节左右。

顺便说一句,垃圾线实际上看起来像一个用于定义矩形的 PDF 运算符(仅在流对象内部有效,不像这里那样独立存在)。在正确打开或创建 PDF 对象之前,可能有一些命令在您的代码中定义了一个矩形?

【讨论】:

  • 谢谢@mkl。周末我会看看这些东西是如何在 %PDF 之前打印出来的...
  • 我发现了这个错误。我正在使用扩展的 fpdf 类,并且我有一个称为页脚的方法。我通过“手动”调用此方法,但现在我在文档中发现 fpdf 自动调用此方法。所以它运行了两次,这是错误的。现在Pdfs很好。谢谢。
猜你喜欢
  • 2018-09-17
  • 2013-12-18
  • 1970-01-01
  • 2022-01-12
  • 2014-04-22
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多