明凯博客

关注网站技术,一个特立独行的程序员

AspPdf下载时提示PDF startxref not found的解决方法

在使用asppdf插件加水印下载时,总会发现一些莫名其妙的错误,这次我又发现了下面的一个错误:

pdf1

首先我想到的是文件损坏了,那就跟程序没有关系了。

然后尝试用Adobe Reader打开,看看能不能正常显示,如果不能正常打开,会提示:
pdf2

可是这次居然可以打开,后来谷歌了一下,这种情况是可以修复的。

这个提示是说明PDF文件尾部的一些数据没有找到。然后可以用文本工具或者二进制工具查看pdf文件,具体文件的尾部一般是这样子的:

0000286333 00000 n
0000286361 00000 n
0000293175 00000 n
0000293249 00000 n
0000298153 00000 n
< <3238ABC46EC23340BB7354122C849D2B>] /Prev 299820/XRefStm 298153>>
startxref
313061
%%EOF

文件以%%EOF为结尾。程序解析pdf的时候一般从尾部开始去查找交叉引用表从文件头的物理偏移量:“startxref 313061”。

如果没找到就会有这个错误,提示PDF startxref not found。

具体的解决方法就是将打开的pdf另存为一份,然后程序就可以下载了。

居然发现PDF文档后面变成这样子了:

>>stream
h辀b &F鍼N&戚 掚坉?”9xA$?蓆 L轇園摄`椒敛`抦/X|XL2颋―&檝#閖硲?閎:庉d圪Wa極?d鳆 ?,k6?恉S砪A$顱)?”€?丠? 抋6X飛`凫
a`n$荾耲榽僅F€  惈.
endstream
endobj
startxref
116
%%EOF

可能就是pdf编辑器的原因导致的吧。

, ,

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注