You've all noticed by now that I'm working intensively on the new IF.
Testing with documents only involving text and rectangles (i.e. what is
implemented right now), the new IF is almost twice as fast as the plain
area tree XML format. So I assume the goals for the new IF can probably
be met. It looks like the output format implementations really get
smaller, faster to implement and more readable. My only worry point is
handling advanced borders in a format-independent way. But it should all
be solvable.

I'm also building the SVG (1.1 and 1.2 Print WD) painter next to the
IFSerializer to see whether a subset of SVG might actually be used as
our new intermediate format. However, I don't see that SVG is the right
way because it would mean defining all sorts of extensions to handle all
the additional things needed for the IF. The SVG needs more hierarchy 
(SVG g tags) for getting paint state right (verbosity). The stronger mix
of namespaces might make the thing slower, too. If course, we will also
mix namespaces in the new IF but only at defined points for FOP
extensions. Finally, there are currently no SVG Print implementation
that I know of. Because we need SVG Print's page and pageSet feature we
couldn't preview the file anyway with external tools. Firefow, Inkscape
and Batik won't display the SVG Print file.

Some additional thoughts while going forward...

I think I'd like to split the IFPainter interface in two. Our Renderer
interface is already much too big causing big subclasses with many
methods. If I put everything in the IFPainter interface something
similar will happen here, too. The obvious split-point IMO is the
page. The IFDocumentHandler would deal with setting up the document and
handling page-sequences. The IFPagePainter would deal with single pages.
Formats like PNG, Mars and XPS generate a new file per page inside their
ZIP containers. PDF, AFP and PostScript also have distinct objects for
pages. So I think that makes sense. Please chime in if you don't agree
or if you have better names for the interfaces.

You may have seen my recent addition to the Wiki page about resource
management. This is only an idea at the moment. Basically, it's about an
optimization for formats like PS and AFP (avoids a two-pass approach
when generating a resource-optimized print file).

Thoughts and opinions welcome.

Jeremias Maerki

Reply via email to