What I am wondering is how religious we have to be about the ordering of the
objects needed to image a page. Right now, PDF/is Ver. 0.5 proposes the
following layout for page objects:
Page Object
Content Stream, Image Mask, Image Object %repeated as many times as
necessary
%one
content stream per image or image-mask pair
Resource Dictionary
If the number of images or image-mask pairs on the page is not known in
advance, then the Page Object cannot be definitively written until the page
is completely processed since the number of content streams is not known at
the time the writer encounters the Page Object. If there is only one content
stream for the entire page, then the Page Object is known before any page
processing has occurred, but the single content stream is not known until
the page is completely processed. So place the content stream in the file
after the all the images and image-mask pairs.
Page Object
Image Mask, Image Object %repeated as many times as necessary
Content Stream
Resource Dictionary
A writer could assemble all this in memory before writing out the objects
for the page-in that case, any ordering of objects is possible. The only
certain constraint is that all the objects needed to image a page come
together in the file. Even then there is no requirement that the Page Object
be first. So the following is also plausible.
Content Stream
Image Mask, Image Object %repeated as many times as necessary
Resource Dictionary
Page Object
I know Ver. 0.5 has conformance rules, but I believe it is based on
assumptions about the writer and reader (and the supporting libraries) that
need to be made more explicit. For example, a reader could accumulate all
the objects in the file and then image the page when it encountered a Page
Object. Or it could be set up to image the objects in the order they are
encountered, but there is no guarantee that the image objects can even be in
that order so that a page buffer is required.
Somewhere in here also is how the association is made between the content
stream elements and the objects to which they apply. For example, when the
content stream says "/Obj1 Do" how does it know which is Obj1? Is there a
Name entry in the image object, or is it via the Resource Dictionary?
There has been e-mail on some of these points before, but I would like to
collect all the points in a single discussion at today's meeting.
Rob
This archive was generated by hypermail 2b29 : Fri Mar 21 2003 - 12:12:27 EST