Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Xmlgraphics-fop Wiki" 
for change notification.

The following page has been changed by JeremiasMaerki:
http://wiki.apache.org/xmlgraphics-fop/AreaTreeIntermediateXml/NewDesign

The comment on the change is:
Responding to Adrian's comments

------------------------------------------------------------------------------
  = Basic ideas =
  
   * Try to put the processing load on the layout side as much as possible. On 
the rendering side you should only have basic painting functions (basically a 
simple, XML-based graphical metafile).
+    * The format needs to be streamable, i.e. no DOM is necessary, every 
command can be processed after the other, minimal stack with state information.
     * Difficulty: this works only for FOP's native feature set (basically text 
and border painting plus coordinate system handling). The processing of images, 
fonts and other resources are heavily output format specific, so the shift of 
processing focus to the layout side has its limits (this has to be done in the 
rendering stage).
     * The intermediate format has to become much easier and faster to parse.
     * Benefit: the renderers may be become leaner and therefore easier to 
maintain and implement.
     * Difficulty: features needed in the future (mainly: tagged PDF) could 
become a little more difficult since a graphical metafile will not contain 
structure information per se. OTOH, the current area tree doesn't have enough 
structure information, either.
-    * Difficulty: until now, supporting extension was relatively easy as each 
area tree object could carry extension attributes. With a graphical metafile, 
no one area tree object can directly identified in the stream anymore.
+    * Difficulty: until now, supporting extension was relatively easy as each 
area tree object could carry extension attributes. With a graphical metafile, 
individual area tree object cannot directly be identified in the stream anymore.
     * When going in this direction, one question is obvious: Why not take SVG 
(or Adobe Mars) as the intermediate format? It would most probably be much 
slower than an optimized, proprietary format. But what if we restricted 
ourselves to a subset and didn't use Batik for the rendering? Just a thought.
     * It is worth noting that the working draft SVG 1.2 specification would 
provide pagination for the layout with the <page/> and <pageSet/> elements (see 
http://www.w3.org/TR/2004/WD-SVG12-20041027/multipage.html) [2].
  = Sketching out a new XML format =
@@ -55, +56 @@

   * infrastructure for tagged PDF [1]: Structure tree (in the document header) 
plus content containers (in the page content), word-break info
   * Accessibility elements: language info and possibly other stuff
  
- ''[1] JM: I wonder how far we'll need to go for tagged PDF. Do people only 
need the basic structure of the document (separating headers from flow content, 
maybe indicating block roles (para, title, footnote, ...) through extension 
attributes on fo:block? Or does someone need the whole tagged PDF feature set 
which basically allows you to embed many original semantics from the original 
FO document to be present in the PDF (spaces, indents, baseline shifts, 
alignment, etc.)?
+ ''[1] JM: I wonder how far we'll need to go for tagged PDF. Do people only 
need the basic structure of the document (separating headers from flow content, 
maybe indicating block roles (para, title, footnote, ...) through extension 
attributes on fo:block? Or does someone need the whole tagged PDF feature set 
which basically allows you to embed many original semantics from the original 
FO document to be present in the PDF (spaces, indents, baseline shifts, 
alignment, etc.)?''
  
- ''[2] AC: Taking a SVG 1.2 subset (Tiny?) format, how slow would Batik be as 
a final renderer for FOP?
+ ''[2] AC: Taking a SVG 1.2 subset (Tiny?) format, how slow would Batik be as 
a final renderer for FOP? JM: as already indicated in the first place: quite 
slow. The process: build-up of DOM tree, build-up of GVT tree, rendering GVT 
tree to Graphics2D, conversion of Graphics2D calls to final format. Too many 
steps in between. I suspect it would even be slower than today's solution. What 
we need is something that can be streamed and processed on the fly without 
building up too many intermediate structures in memory. BTW, Tiny is already 
too powerful for what we need. And I really don't intend to write a second 
Batik. If we decide to use an SVG subset, it would be an "SVG Nano". :-) I'll 
try to formulate a minimal format first trying to stay as close to SVG as 
possible. From there, we can check if this can be fully mapped to SVG elements. 
The risk is not needing all of SVG's features but needing many extensions which 
could again make the parsing to slow because of the growing c
 omplexity.''
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to