https://bugs.documentfoundation.org/show_bug.cgi?id=106057

--- Comment #15 from Kevin Suo <suokunl...@126.com> ---
Below is the portion related to trailer in this pdf:

<contents above ommitted>
endstream
endobj
xref
0 4644
0000000004 65535 f
0000056752 00000 n
<omitted multiple xref entries>
0000004642 65535 f
trailer
<</Size 4644/Root 1 0 R>>
xref
0 0
trailer
<</Size 4644/Prev 4950910/XRefStm 55777/Root 1 0 R/Info 373 0
R/ID[<23394E591A08E64B8237236C314F97F2><64F67A6686A94D0B8F325336D36A35E8>]>>
startxref
5043836
%%EOF

So yes, there are two trailers in this pdf. The first xref and the first
trailer should have been added before the file was once "incrementally
updated". The 2nd one (i.e. the last one) is the one which should be used for
pdf parsing.
I note that there is a problem here - the first trailer is not terminated by
its own end-of-file ( %%EOF ) marker, see citation below.

-----------

Citing the Adobe PDF Reference (third edition):

3.4.5 Incremental Updates

In an incremental update, any new or changed objects are appended to the file, a
cross-reference section is added, and a new trailer is inserted. ...

The cross-reference section added when a file is updated contains entries only
for objects that have been changed, replaced, or deleted, plus the entry for
object 0. Deleted objects are left unchanged in the file, but are marked as
deleted via their cross-reference entries. The added trailer contains all the
entries (perhaps modified) from the previous trailer, as well as a Prev entry
giving the location of the previous cross-reference section (see Table 3.12 on
page 68). As shown in Figure 3.3, a file that has been updated several times
contains several trailers; note that each trailer is terminated by its own
end-of-file ( %%EOF ) marker.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to