2

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

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

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

4

1 回答 1

2

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 对象之前,可能有一些命令在您的代码中定义了一个矩形?

于 2012-11-16T16:29:00.247 回答