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.


HTH!

Cheers

Andreas

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


Mime
View raw message