It might be helpful to take the renderer programmer's view:

- A meaningful renderer interface has to be specified now, i.e. the
representation of pages either in memory or serialized. More supported XSL
properties lead to bigger storage requirements.

- Renderers take over pages consisting from some graphic objects with
absolute sizes and positions. Anything between FO input and these graphics
is completely irrelevant to renderers.

- Layouters and area tree builders may produce fantastic documents on an
extremely efficient way, conforming to specifications etc.: but what, if
renderers are not able to render graphic objects, to handle orientations and
directions - as it's the case with the PCL renderer nowadays?

- Testing, validation is another topic. Java2D is the reliable rendering
system unless you want to use the Adobe product as benchmark.

When it comes to a Java2D renderer (former AWT renderer), there are these
facts regarding text rendering, font support:

o Java supports TrueType, OPI and Type1 fonts
o XSL properties : Java TextAttribute's = 1:1
- TextAttribute maps give a binary object representation for XSL font
properties in Java (more Float's than int's)
- Java2D 1.4 does not process stretch and weight properly (hopefully fixed
in Java 1.5), variant is not supported
- font face picking by Java 1.4 is funny: a static font mapping is required
to get predictable results
o Java2D supports font metrics, i18n, bidi and Unicode well
o Java2D does not support
- word and character spacing: may be programmed by inserting white space
- kerning: info not available in font metrics

Similar observations apply to Java2D strokes, rectangles and images.

Hansuli Anderegg


Reply via email to