【发布时间】:2021-03-31 10:21:30
【问题描述】:
我正在使用 Typescript 在我的 PDF 文件末尾编写一个流式交叉引用表,正如我的 previous post 的答案所建议的那样
这是我在没有流的情况下编写的 XREF 表:
xref
0 1
0000000000 65535 f
21 2
0000084670 00000 n
0000085209 00000 n
73 6
0000085585 00000 n
0000086335 00000 n
0000150988 00000 n
0000151086 00000 n
0000151528 00000 n
0000151707 00000 n
trailer
<<
/Size 79
/Root 21 0 R
/Info 19 0 R
/Prev 116
>>
startxref
152861
%%EOF
这是流式传输的版本:
79 0 obj
<<
/Type /XRef /Filter /FlateDecode
/Root 21 0 R
/Info 19 0 R
/Index [0 1 21 2 73 7 ] /W[1 3 0] /DecodeParms<</Columns 4/Predictor 12>> /Prev 116 /Length 45 /Size 80>>
stream
(...data..)
endstream
endobj
startxref
152870
%%EOF
关于流的内容,这里是字节数组的形式。使用默认压缩级别的 Poko.deflate() 对其进行了放气:
120,156,99,98,0,2,38,70,70,175,125,76,140,12,76,210,64,130,177,2,196,122,7,36,254,244,2,9,134,36,144,216,46,16,107,51,1014,6, ,44,6,140
我已经反转了我找到here的过程
充气版排列如下:
02 00 00 00 00
02 01 01 4a be // = 84670 -> object 21 is at byte position 84670
02 01 00 02 1b // = 539 -> object 22 is at byte position 85209
02 01 00 01 78 // = 376 -> object 73 is at byte position 85585
02 01 00 02 ee // etc
02 01 00 fc 8d
02 01 00 00 62
02 01 00 01 ba
02 01 00 00 b3
02 01 00 04 82
但是,当我尝试打开生成的文件时,我得到的只是:
我错过了什么?这个过程最奇怪的是每行前面的“02”(在引用的帖子here中找到)。但是,即使没有它,似乎也会出现同样的问题。我错过了什么?
【问题讨论】:
-
请分享整个PDF进行分析。
-
问题1,你的startxref偏移量错误,你必须指向间接对象的开始,而不是其中的直接对象。但还有其他错误。
标签: pdf pdf-generation