2012-11-15 57 views
0

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

android上的acrobat reader正在关闭文件已损坏的消息。由一个客户,我知道在iPad上打开PDF文件什么也没有发生...... 我已经试过只是为了创建一个空的PDF,但同样的行为。 在使用Acrobat Reader和foxit的Windows上,一切正常。

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

+1

请提供样本PDF进行检查。 – mkl

+0

@mkl:这里是:[链接](https://docs.google.com/file/d/0Bx-FBWhqcXXBdk5SVU41UzR4dE0/edit)它应该只显示一个用$ this-> SetLineWidth创建的底部的矩形( 1); $ this-> SetDrawColor(3,3,3); $这 - >的Rect(185,261,17,4); $ this-> Ln(20);'即使谷歌文档不显示它。 – devOp

回答

1

文件在他的评论,link提供由devOp,实际上是一个损坏的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仅需要标记处于前1000个字节左右。

顺便说一句,垃圾线实际上看起来像一个PDF操作符,用于定义一个矩形(只在流对象内部有效,而不是像这里那样独自站立)。也许有一些命令在PDF对象正确打开或创建之前在代码中定义了一个矩形?

+0

谢谢@mkl。我会在周末看看这些东西在%PDF之前是如何打印的...... – devOp

+1

我发现了这个错误。我正在使用扩展的fpdf类,并且我有一个名为footer的方法。我用“手”来称呼这个方法,但现在我已经在文档中发现fpdf会自动调用它。所以它运行了两次,这是错误的。现在的Pdfs很好。谢谢。 – devOp

相关问题