Graphics Programs Reference
In-Depth Information
/Filter [/ASCII85Decode /DCTDecode]
Filters which require external parameters (for example, defining compression
parameters outside the data stream itself) store those in the stream dictionary too.
Incremental Update
Incremental update allows a file to be updated by appending modifications to the end
of the file, so the whole file doesn't need to be written again (which, for a large file,
could take a long time). The update constitutes the new or changed objects, and an
update to the cross-reference table. This means saving the changes takes less time, but
the file may become bloated (because objects which are no longer needed cannot be
deleted).
This updating process may happen several times. A side-effect is that files updated in
this fashion may have those changes undone one or more levels, to retrieve earlier
versions of the document.
When altering a digitally signed document, all updates must be made incrementally—
otherwise, the digital signature would be invalidated. The recipient can undo the in-
cremental updates to retrieve the original, certified document.
When a file is updated incrementally, a new trailer is added, containing all the entries
from the previous trailer, together with a /Prev entry giving the byte offset of the pre-
vious cross-reference table. Thus, a file which has been incrementally updated will have
multiple trailer dictionaries and end-of-file markers. In this way, a PDF application can
read the cross-reference sections in reverse order to build up a list of the latest versions
of each object in the file. Objects which have been replaced keep the same object
number.
Object and Cross-Reference Streams
Starting with PDF 1.5, a new mechanism was introduced to further compress PDF files
by allowing many objects to be put into a single object stream , the whole stream being
compressed. In tandem, a new mechanism for referencing the objects in these streams
was introduced— cross-reference streams .
A file will generally use several sets of object streams, grouping together objects which
are needed at certain times, for example all the objects on page one, all the objects on
page two, and so on. This retains the random access property of the document, which
would be lost if all the objects in a file were to be put into a single object stream. Object
streams can't contain other streams.
Files compressed with these mechanisms are rather hard to read manually, so we can
use the decompress operation in pdftk as usual, to rewrite them decompressed for in-
Search WWH ::




Custom Search