pdf中对照表中的偏移量不正确

pdf中对照表中的偏移量不正确,pdf,pdf-generation,acrobat,hex-editors,Pdf,Pdf Generation,Acrobat,Hex Editors,我有一个pdf,它被破坏了,也就是说,它的对照表被破坏了。我用新的偏移值更正了这个交叉参考表。但《杂技演员》仍然显示它已经坏了。我使用十六进制编辑器neo来计算新的偏移量。我的值是否错误,或者是否有其他方法来计算偏移。任何建议都会有帮助 我用新的偏移值更正了这个交叉参考表 嗯,你这样做只是部分成功。您的交叉引用: xref 0 13 0000000000 65535 f 0000089160 00000 n 0000000015 00000 n 0000089295 00000 n 00

我有一个pdf,它被破坏了,也就是说,它的对照表被破坏了。我用新的偏移值更正了这个交叉参考表。但《杂技演员》仍然显示它已经坏了。我使用十六进制编辑器neo来计算新的偏移量。我的值是否错误,或者是否有其他方法来计算偏移。任何建议都会有帮助

我用新的偏移值更正了这个交叉参考表

嗯,你这样做只是部分成功。您的交叉引用:

xref
0 13
0000000000 65535 f 
0000089160 00000 n 
0000000015 00000 n 
0000089295 00000 n 
0000012216 00000 n 
0000089544 00000 n 
0000012285 00000 n 
0000012433 00000 n 
0000087869 00000 n 
0000089833 00000 n 
0000088057 00000 n 
0000089662 00000 n 
00000 00000 n  
最后一个条目显然被破坏了,经过检查,对象9..12的条目都被证明是错误的。正确的值为:

xref
0 13
0000000000 65535 f 
0000089160 00000 n 
0000000015 00000 n 
0000089295 00000 n 
0000012216 00000 n 
0000089544 00000 n 
0000012285 00000 n 
0000012433 00000 n 
0000087869 00000 n 
0000088057 00000 n 
0000088533 00000 n 
0000089595 00000 n 
0000089662 00000 n  
此外,交叉引用的起始值

startxref
91649
%%EOF
是错误的,特别是考虑到您的文件小于91000字节。正确的值是

startxref
89873
%%EOF
此外,页面内容流被破坏:

4 0 obj
<</Filter/FlateDecode/Length 1627>>stream
x
endstream
endobj 
40对象
流动
x
尾流
endobj
但这似乎是故意的

我用新的偏移值更正了这个交叉参考表

嗯,你这样做只是部分成功。您的交叉引用:

xref
0 13
0000000000 65535 f 
0000089160 00000 n 
0000000015 00000 n 
0000089295 00000 n 
0000012216 00000 n 
0000089544 00000 n 
0000012285 00000 n 
0000012433 00000 n 
0000087869 00000 n 
0000089833 00000 n 
0000088057 00000 n 
0000089662 00000 n 
00000 00000 n  
最后一个条目显然被破坏了,经过检查,对象9..12的条目都被证明是错误的。正确的值为:

xref
0 13
0000000000 65535 f 
0000089160 00000 n 
0000000015 00000 n 
0000089295 00000 n 
0000012216 00000 n 
0000089544 00000 n 
0000012285 00000 n 
0000012433 00000 n 
0000087869 00000 n 
0000088057 00000 n 
0000088533 00000 n 
0000089595 00000 n 
0000089662 00000 n  
此外,交叉引用的起始值

startxref
91649
%%EOF
是错误的,特别是考虑到您的文件小于91000字节。正确的值是

startxref
89873
%%EOF
此外,页面内容流被破坏:

4 0 obj
<</Filter/FlateDecode/Length 1627>>stream
x
endstream
endobj 
40对象
流动
x
尾流
endobj

但这似乎是故意的。

是的,我想当我删除第四个对象的流时。我没有更新startxref值。我的疑问是,假设我将pdf的外部参照表与您的完全相同。现在,当我在acrobat中打开pdf并关闭它时。它仍然会提示您是否要保存对此pdf的更改。我认为这意味着pdf仍然被破坏。当我用上面的更改打开和关闭它时,它不再提示。因此,我认为我们所做的有些不同。您是否注意到交叉引用条目的大小?它必须正好是20个字节…是的,我查过了。10个字节(偏移量)+1个字节(1个空格)+5个字节(5位生成)+1个字节(1个空格)+1个字节(使用或释放)+2个字节(空格+换行符)。我对所有条目都有这个精确的结构。请共享文件的新状态以供分析。请看一看。是的,我想当我删除第四个对象的流时。我没有更新startxref值。我的疑问是,假设我将pdf的外部参照表与您的完全相同。现在,当我在acrobat中打开pdf并关闭它时。它仍然会提示您是否要保存对此pdf的更改。我认为这意味着pdf仍然被破坏。当我用上面的更改打开和关闭它时,它不再提示。因此,我认为我们所做的有些不同。您是否注意到交叉引用条目的大小?它必须正好是20个字节…是的,我查过了。10个字节(偏移量)+1个字节(1个空格)+5个字节(5位生成)+1个字节(1个空格)+1个字节(使用或释放)+2个字节(空格+换行符)。我对所有条目都有这个精确的结构。请共享文件的新状态以供分析。请看一看。