Fw: XSL 1.1 CR test suite available

2006-05-31 Thread Jeremias Maerki
Test suite available, yes, but when you look at the contents you will be
disappointed. The tests only cover new features in 1.1 and some of the
elements clarified since 1.0. I just gave it a test run. FOP doesn't
look too good, mostly because the new 1.1 features are largely
unimplemented, but also due to the lack of support for
fo:inline-container which is used quite extensively. Furthermore,
fo:wrapper is implemented as an inline layout manager but it can also be
used for wrapping block-level FOs (result: ClassCastExceptions). The
bookmark test, for example, uses lots of naked block-level wrappers
which don't have any effect other than to make FOP fail. :-( When you
remove the wrappers, everything's fine. Given the current results and
the contents of the test suite, I'm not quite motivated enough to write
some code so we can automate the test suite. If anyone else is, feel
free.

--- Original Message ---
 From:Grosso, Paul
 Date:Tue, 30 May 2006 15:30:51 -0400
 Subject: XSL 1.1 CR test suite available



The XSL FO SG has made available a test suite for
the XSL 1.1 Candidate Recommendation.  See
http://www.w3.org/Style/XSL/TestSuite1.1/
for the Test Suite home page (which points to a zip
and various other files).

Though the minimum review period on the XSL 1.1 CR ends
tomorrow, implementation feedback is necessary before we 
can request that XSL 1.1 become a Proposed Recommendation.

The SG requests implementor feedback on the XSL 1.1 CR at
http://www.w3.org/TR/2006/CR-xsl11-20060220/
All implementors and other interested parties are asked
to provide feedback using the test suite as described in
http://www.w3.org/Style/XSL/TestSuite1.1/w3cxsl-fo-1_1-test.html
Comments on the test suite itself are also solicited.

Paul Grosso
for the XSL FO SG

- Original Message Ends 


Jeremias Maerki



Re: Renderer feedback

2006-05-31 Thread Christian Geisert
Jeremias Maerki schrieb:
 I think the AFP and PCL renderers are now pretty much ready to be
 promoted from the sandbox. Are there any people on this list who have
 tried those renderers so they could give some feedback?

I tried the PCL renderer with a few documents on a Brother HL1270N and
those looked good but there were small differences with the PS versions.
I'll hope to find some time soon to have a closer look at this.

Christian


Re: [GSoC] Wiki page for progress informations

2006-05-31 Thread Luca Furini

Jeremias Maerki wrote:


did you already investigate how footnotes are implemented? Can you say
anything about how similar the problem of footnotes is to before-floats?
Just so you don't have to start from scratch while there may be
something to build upon. After all, the footnotes also contain some
logic to move certain parts to a different page than where anchor is
located.


A few quick comments about the footnote implementation:

1) the FootnoteLM returns only the sequence of elements representing the 
inline part (not the footnote-body part); it just adds to the last 
(inline) box a reference to the FootnoteBodyLM.


2) the LineLM, after computing the breaks, adds to each (block) box 
representing a line the references to the FootnoteBodyLM whose citations 
are in that line


3) during the remaining of the element collection phase, these references 
are not used (but in the creation of combined element lists, when they 
should be copied inside the new elements)


4) the PageSequenceLM.PageBreaker.getNextKnuthElements() method, after 
receiving all the (block) elements, scans them looking for footnote 
information, gets the elements from the referenced FootnoteBodyLM and puts 
them in a different list (at the moment a list of lists, but this is 
sub-optimal), and from the footnote-separator (in a separate list)


5) these lists are looked at in PageBreakingAlgorithm.computeDifference(), 
where we try to add some footnote content to the normal page content 
using getFootnoteSplit(), and in computeDemerits(), where some extra 
demerits are added if we break a footnote or some footnotes are deferred.


This last point at the moment is performed using many 
PageBreakingAlgorithm private variables, which is maybe not the best way 
to do it, as we must be very careful about their initialization and their 
use, especially when the algorithm restarts. I think that a state object 
storing these variables could be used to store these values, and 
explicitly passed along the methods instead of relying on the class 
members, but concerning this I'd like to hear the opinions of the other 
committers ...


Insertion of before-floats could be implemented in a similar way, giving 
the precedence to the footnote insertion (as it is affected by more strict 
constraints).


An important difference between a footnote and a before-float is that the 
latter does not have an inline part, so (if we want to follow the same 
pattern) we need to either store the reference inside a previously-created 
box or to add some new elements containing the reference (but we must be 
sure that these elements cannot be parted from the previous ones, see the 
constraints in section 6.10.2 in the spec).


A crucial point is the demerit function as, if I remember correctly, it 
greatly affect the computational complexity of the breaking algorithm 
(thre should be a M. Plass paper concerning this).


HTH


Another thing that we may need to keep in mind: There was lots of desire
from the user community that FOP supports large documents (long-term
goal, not necessary yours). I wrote that a first-fit algorithm could
help free memory earlier. Obviously, for complex before-float situations
a total-fit approach is probably more interesting as it can come up with
more creative solutions. I'm just mentioning it so we keep the bigger
picture in mind and since there could be conflicting goals.


A first degree of first-fit algorithm could be achieved quite quickly by 
having a BreakingAlgorithm interface which is implemented by a TotalFitBA 
(the existing implementation) and a FirstFitBA which would have a much 
simpler considerLegalBreak() method that, instead of the complex set of 
nodes, just keeps in mind a single node.


This would surely decrease the memory footprint, but is not (I think) what 
we really want, as this simplified algorithm would be performed on the 
whole sequence of elements.


In order to start processing the sequence as soon as we receive a few 
elements we need to do some deeper changes.


An idea (I just had it now, so I did not fully consider all its 
implications).
At the moment, the block-level LM collect elements from their children and 
return just a single sequence (if there are no break conditions); we could 
have a parameter requesting them to return after they receive each child 
sub-sequence, and have a canStartComputingBreak() method that returns true 
if the sequence contains enough elements and we are using a first-fit 
algorithm, or false otherwise ...


Sorry for the long post ... and for the long absence too, but it seems 
that just after thinking great, now I've really got some time to spend on 
FOP I receive tons of other things to do ... :-(


Regards
Luca


[EMAIL PROTECTED]: Project xml-fop-maintenance (in module xml-fop-maintenance) failed

2006-05-31 Thread Sam Ruby
To whom it may engage...

This is an automated request, but not an unsolicited one. For 
more information please visit http://gump.apache.org/nagged.html, 
and/or contact the folk at [EMAIL PROTECTED]

Project xml-fop-maintenance has an issue affecting its community integration.
This issue affects 1 projects,
 and has been outstanding for 17 runs.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- xml-fop-maintenance :  XSL-FO (Formatting Objects) processor (Maintenance 
branch)


Full details are available at:

http://vmgump.apache.org/gump/public/xml-fop-maintenance/xml-fop-maintenance/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -DEBUG- Sole output [fop.jar] identifier set to project name
 -INFO- Made directory 
[/usr/local/gump/public/workspace/xml-fop-maintenance/build/classes]
 -INFO- Failed with reason build failed
 -DEBUG- Extracted fallback artifacts from Gump Repository



The following work was performed:
http://vmgump.apache.org/gump/public/xml-fop-maintenance/xml-fop-maintenance/gump_work/build_xml-fop-maintenance_xml-fop-maintenance.html
Work Name: build_xml-fop-maintenance_xml-fop-maintenance (Type: Build)
Work ended in a state of : Failed
Elapsed: 3 secs
Command Line: java -Djava.awt.headless=true 
-Xbootclasspath/p:/usr/local/gump/public/workspace/xml-commons/java/external/build/xml-apis.jar:/usr/local/gump/public/workspace/xml-xerces2/build/xercesImpl.jar:/usr/local/gump/public/workspace/xml-xalan/build/serializer.jar:/usr/local/gump/public/workspace/xml-xalan/build/xalan-unbundled.jar
 org.apache.tools.ant.Main -Dgump.merge=/x1/gump/public/gump/work/merge.xml 
-Dbuild.sysclasspath=only gump 
[Working Directory: /usr/local/gump/public/workspace/xml-fop-maintenance]
CLASSPATH: 
/opt/jdk1.5/lib/tools.jar:/usr/local/gump/public/workspace/xml-fop-maintenance/build/classes:/usr/local/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-swing.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-trax.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-junit.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant.jar:/usr/local/gump/packages/junit3.8.1/junit.jar:/usr/local/gump/public/workspace/xml-commons/java/build/resolver.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-util.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-swing.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-css.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-bridge.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-xml.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-svg-dom.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-awt-util.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-transcoder.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-gui-util.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-dom.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-ext.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-script.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-svggen.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-parser.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-extension.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-gvt.jar:/usr/local/gump/public/workspace/excalibur/framework/api/target/excalibur-framework-api-31052006.jar:/usr/local/gump/public/workspace/excalibur/framework/impl/target/excalibur-framework-impl-31052006.jar
-
Buildfile: build.xml

init-avail:

init-filters-jdk14:
 [echo] JDK 1.4 present.
 [copy] Copying 1 file to 
/x1/gump/public/workspace/xml-fop-maintenance/build/src/codegen

init-filters-jdk13:

init:
 [echo] --- Fop 0.20.5 [1999-2003] 
 [echo] Apache Ant version 1.7alpha compiled on May 31 2006
 [echo] VM: 1.5.0_06-b05, Sun Microsystems Inc.
 [echo] JAVA_HOME: /opt/jdk1.5

prepare:
 [echo] Preparing the build directories
[mkdir] Created dir: 
/x1/gump/public/workspace/xml-fop-maintenance/build/src/org/apache/fop/fo/properties
[mkdir] Created dir: 
/x1/gump/public/workspace/xml-fop-maintenance/build/src/org/apache/fop/render/pdf/fonts
[mkdir] Created dir: 
/x1/gump/public/workspace/xml-fop-maintenance/build/src/org/apache/fop/svg
[mkdir] Created dir: 

[EMAIL PROTECTED]: Project xml-fop-maintenance (in module xml-fop-maintenance) failed

2006-05-31 Thread Sam Ruby
To whom it may engage...

This is an automated request, but not an unsolicited one. For 
more information please visit http://gump.apache.org/nagged.html, 
and/or contact the folk at [EMAIL PROTECTED]

Project xml-fop-maintenance has an issue affecting its community integration.
This issue affects 1 projects,
 and has been outstanding for 17 runs.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- xml-fop-maintenance :  XSL-FO (Formatting Objects) processor (Maintenance 
branch)


Full details are available at:

http://vmgump.apache.org/gump/public/xml-fop-maintenance/xml-fop-maintenance/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -DEBUG- Sole output [fop.jar] identifier set to project name
 -INFO- Made directory 
[/usr/local/gump/public/workspace/xml-fop-maintenance/build/classes]
 -INFO- Failed with reason build failed
 -DEBUG- Extracted fallback artifacts from Gump Repository



The following work was performed:
http://vmgump.apache.org/gump/public/xml-fop-maintenance/xml-fop-maintenance/gump_work/build_xml-fop-maintenance_xml-fop-maintenance.html
Work Name: build_xml-fop-maintenance_xml-fop-maintenance (Type: Build)
Work ended in a state of : Failed
Elapsed: 3 secs
Command Line: java -Djava.awt.headless=true 
-Xbootclasspath/p:/usr/local/gump/public/workspace/xml-commons/java/external/build/xml-apis.jar:/usr/local/gump/public/workspace/xml-xerces2/build/xercesImpl.jar:/usr/local/gump/public/workspace/xml-xalan/build/serializer.jar:/usr/local/gump/public/workspace/xml-xalan/build/xalan-unbundled.jar
 org.apache.tools.ant.Main -Dgump.merge=/x1/gump/public/gump/work/merge.xml 
-Dbuild.sysclasspath=only gump 
[Working Directory: /usr/local/gump/public/workspace/xml-fop-maintenance]
CLASSPATH: 
/opt/jdk1.5/lib/tools.jar:/usr/local/gump/public/workspace/xml-fop-maintenance/build/classes:/usr/local/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-swing.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-trax.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-junit.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant.jar:/usr/local/gump/packages/junit3.8.1/junit.jar:/usr/local/gump/public/workspace/xml-commons/java/build/resolver.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-util.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-swing.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-css.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-bridge.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-xml.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-svg-dom.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-awt-util.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-transcoder.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-gui-util.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-dom.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-ext.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-script.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-svggen.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-parser.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-extension.jar:/usr/local/gump/public/workspace/xml-batik/batik-31052006/lib/batik-gvt.jar:/usr/local/gump/public/workspace/excalibur/framework/api/target/excalibur-framework-api-31052006.jar:/usr/local/gump/public/workspace/excalibur/framework/impl/target/excalibur-framework-impl-31052006.jar
-
Buildfile: build.xml

init-avail:

init-filters-jdk14:
 [echo] JDK 1.4 present.
 [copy] Copying 1 file to 
/x1/gump/public/workspace/xml-fop-maintenance/build/src/codegen

init-filters-jdk13:

init:
 [echo] --- Fop 0.20.5 [1999-2003] 
 [echo] Apache Ant version 1.7alpha compiled on May 31 2006
 [echo] VM: 1.5.0_06-b05, Sun Microsystems Inc.
 [echo] JAVA_HOME: /opt/jdk1.5

prepare:
 [echo] Preparing the build directories
[mkdir] Created dir: 
/x1/gump/public/workspace/xml-fop-maintenance/build/src/org/apache/fop/fo/properties
[mkdir] Created dir: 
/x1/gump/public/workspace/xml-fop-maintenance/build/src/org/apache/fop/render/pdf/fonts
[mkdir] Created dir: 
/x1/gump/public/workspace/xml-fop-maintenance/build/src/org/apache/fop/svg
[mkdir] Created dir: 

Re: [GSoC] Wiki page for progress informations

2006-05-31 Thread Vincent Hennebert

Thanks a lot Luca! This will help me find my way in the code. I keep
your comments in mind for when I better understand the whole issue.

Vincent


Luca Furini a écrit :

Jeremias Maerki wrote:


did you already investigate how footnotes are implemented? Can you say
anything about how similar the problem of footnotes is to before-floats?
Just so you don't have to start from scratch while there may be
something to build upon. After all, the footnotes also contain some
logic to move certain parts to a different page than where anchor is
located.



A few quick comments about the footnote implementation:

1) the FootnoteLM returns only the sequence of elements representing the 
inline part (not the footnote-body part); it just adds to the last 
(inline) box a reference to the FootnoteBodyLM.


2) the LineLM, after computing the breaks, adds to each (block) box 
representing a line the references to the FootnoteBodyLM whose citations 
are in that line


3) during the remaining of the element collection phase, these 
references are not used (but in the creation of combined element 
lists, when they should be copied inside the new elements)


4) the PageSequenceLM.PageBreaker.getNextKnuthElements() method, after 
receiving all the (block) elements, scans them looking for footnote 
information, gets the elements from the referenced FootnoteBodyLM and 
puts them in a different list (at the moment a list of lists, but this 
is sub-optimal), and from the footnote-separator (in a separate list)


5) these lists are looked at in 
PageBreakingAlgorithm.computeDifference(), where we try to add some 
footnote content to the normal page content using getFootnoteSplit(), 
and in computeDemerits(), where some extra demerits are added if we 
break a footnote or some footnotes are deferred.


This last point at the moment is performed using many 
PageBreakingAlgorithm private variables, which is maybe not the best way 
to do it, as we must be very careful about their initialization and 
their use, especially when the algorithm restarts. I think that a 
state object storing these variables could be used to store these 
values, and explicitly passed along the methods instead of relying on 
the class members, but concerning this I'd like to hear the opinions of 
the other committers ...


Insertion of before-floats could be implemented in a similar way, giving 
the precedence to the footnote insertion (as it is affected by more 
strict constraints).


An important difference between a footnote and a before-float is that 
the latter does not have an inline part, so (if we want to follow the 
same pattern) we need to either store the reference inside a 
previously-created box or to add some new elements containing the 
reference (but we must be sure that these elements cannot be parted from 
the previous ones, see the constraints in section 6.10.2 in the spec).


A crucial point is the demerit function as, if I remember correctly, it 
greatly affect the computational complexity of the breaking algorithm 
(thre should be a M. Plass paper concerning this).


HTH


Another thing that we may need to keep in mind: There was lots of desire
from the user community that FOP supports large documents (long-term
goal, not necessary yours). I wrote that a first-fit algorithm could
help free memory earlier. Obviously, for complex before-float situations
a total-fit approach is probably more interesting as it can come up with
more creative solutions. I'm just mentioning it so we keep the bigger
picture in mind and since there could be conflicting goals.



A first degree of first-fit algorithm could be achieved quite quickly 
by having a BreakingAlgorithm interface which is implemented by a 
TotalFitBA (the existing implementation) and a FirstFitBA which would 
have a much simpler considerLegalBreak() method that, instead of the 
complex set of nodes, just keeps in mind a single node.


This would surely decrease the memory footprint, but is not (I think) 
what we really want, as this simplified algorithm would be performed on 
the whole sequence of elements.


In order to start processing the sequence as soon as we receive a few 
elements we need to do some deeper changes.


An idea (I just had it now, so I did not fully consider all its 
implications).
At the moment, the block-level LM collect elements from their children 
and return just a single sequence (if there are no break conditions); we 
could have a parameter requesting them to return after they receive each 
child sub-sequence, and have a canStartComputingBreak() method that 
returns true if the sequence contains enough elements and we are using a 
first-fit algorithm, or false otherwise ...


Sorry for the long post ... and for the long absence too, but it seems 
that just after thinking great, now I've really got some time to spend 
on FOP I receive tons of other things to do ... :-(


Regards
Luca




OpenDocument as an output format

2006-05-31 Thread Stefan Ziel

hi folks,

creating an Output Handler for OASIS OpenDocument, as mentioned in the 
wish list don´t seem to make much sense, as XSL:FO can easily be 
converted to OpenDocument using a XSLT style sheet. without doing all 
that rendering in between ;)


best regards

stefan ziel
clan informatica do brasil



Re: svn commit: r410672 - in /xmlgraphics/fop/trunk/src: documentation/content/xdocs/trunk/ java/org/apache/fop/fonts/ java/org/apache/fop/render/java2d/ sandbox/org/apache/fop/render/pcl/

2006-05-31 Thread Jeremias Maerki
I'd like to add some comments here:
I'm a bit disappointed by PCL. While it is quite feature-rich, it has
some important gaps. Examples are restrictions for handling transparent
images at least in PCL5 (PCL5c seems to be a little better but is also
quite a bit more complicated). Another example is the lack of
sophisticated clipping (non-rect clipping areas) in HP GL/2. It's
practically impossible to implement a full native Graphics2D
implementation for HP GL/2. PCL contains support for TrueType fonts or
downloading bitmap fonts, but implementing these is quite some work and
not even the Windows PCL printer drivers seem to really do this. All
examples I've generated so far made extensive use of bitmap painting
much like what I resorted to in many areas now. And that despite setting
on the printer driver which would suggest otherwise. At some point you
really only paint bitmaps so you could just as well use the
BitmapRenderer and wrap the bitmap in a PCL wrapper to handle painting
on a desktop printer including tray selection. It would most likely be
faster than the mix of bitmaps and native ops. Ok, it depends on the
document. It is certainly possible to invest more time in a more
sophisticated implementation (I've taken a few shortcuts along the way),
but I doubt they are worth the effort.

On 31.05.2006 23:17:19 jeremias wrote:
 Author: jeremias
 Date: Wed May 31 14:17:18 2006
 New Revision: 410672
 
 URL: http://svn.apache.org/viewvc?rev=410672view=rev
 Log:
 Improved accuracy of font size selection. The font size is not rounded down 
 to the next integer point value anymore. (Java2D renderers profit from that 
 one, too)
 
 PCL Renderer:
 Found a use case for that Java2D ascent value (which I call MaxAscent). It is 
 used for painting text as bitmaps and to make sure the image the text is 
 painted on is big enough if the font ascends beyond the em box. For 
 non-Java2D fonts, MaxAscent is the same as ascent.
 Added a check that lets text painting fall back to bitmaps if there are 
 characters that are not in the ISO-8859-1 encoding. This also enables Symbol 
 and ZapfDingbats fonts.
 A text-rendering setting allows to disable PCL text painting in case the 
 mix of PCL and bitmap text painting should result in unwelcome output. Note: 
 the bitmap rendering is relatively slow (many small bitmaps). In the end we 
 might end up rendering using a BitmapRenderer and only wrapping the whole 
 thing in PCL (much like the Windows PCL drivers do). This would be faster 
 than creating many small bitmaps.

snip/


Jeremias Maerki



Re: OpenDocument as an output format

2006-05-31 Thread Jeremias Maerki
That's a fair comment. Still, you have to deal with ODF's ZIP-based
container, multiple output files and resources. You won't get around
writing some helper code around the XSLT. The other question is whether
you can handle all the FO tree features (like inheritance) easily in
XSLT.

Any interest on your side to look into this?

On 31.05.2006 21:17:26 Stefan Ziel wrote:
 hi folks,
 
 creating an Output Handler for OASIS OpenDocument, as mentioned in the 
 wish list don´t seem to make much sense, as XSL:FO can easily be 
 converted to OpenDocument using a XSLT style sheet. without doing all 
 that rendering in between ;)
 
 best regards
 
 stefan ziel
 clan informatica do brasil



Jeremias Maerki