xmlgraphics-fop-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Delmelle <andreas.delme...@telenet.be>
Subject Re: Editing Text in the Intermediate Format
Date Tue, 03 Jun 2008 10:41:15 GMT
On Jun 3, 2008, at 10:57, Martin Edge wrote:

> I don't half wonder whether the Intermediate parser is a little  
> dodgey?
> I'm pretty sure I'm not doing anything silly,  but I get the  
> intermediate file I generate, process that to PCL, I can see it fine.
> I simply open the .AT file, paste into Visual Studio which formats  
> it, and paste it back, and the PCL no longer generates properly.
> Perhaps white spaces are a problem?

Yep. If spaces are encountered in the input FO, then this will result  
in <space> nodes in the area tree. Linefeeds would lead to the  
generation of a new <lineArea>. The <word> nodes are expected to not  
contain any space or linefeed characters themselves.
The org.apache.fop.area.AreaTreeParser does not compensate for  
spaces, linefeeds and/or carriage-returns being added due to  
intermediate reformatting. This is generally not a problem, unless  
the area tree is serialized to a file and treated in an editor (which  
is not really good practice). Reformatting should really only be used  
to make the XML human-readable for debugging. Once the XML needs to  
be fed back into any consuming application, be sure to undo the  
pretty-printing if you expect identical results. In this case, the  
white-space should obviously be ignored, but from a more abstract  
point-of-view, there are no criteria for the consuming application to  
decide whether the additional white-space is significant or not.

That said, AFAICT there is indeed something buggy in the handling of  
the SAX characters() event in AreaTreeParser. The characters are  
appended to a StringBuffer, but this StringBuffer is only reset in  
endElement() events.

IIC, this means that the AreaTreeParser.content StringBuffer for the  
first <word> node will get to contain all the accumulated leading  
white-space characters of its ancestor nodes.

> How do you "debug" in Java? :)

Same as most other programming languages: using an IDE with  
integrated debugging facilities. ;-)

For help on setting up FOP in an IDE, see http://wiki.apache.org/ 
xmlgraphics-fop/FOPIDESetupGuide. Note that some of the info is  
outdated, so the steps may vary slightly for more recent versions of  
the IDEs. Updates to the Wiki are always welcome.




To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org

View raw message