[EMAIL PROTECTED] wrote:

> We have an api that generates a sort of "barcode" image that 
> needs to be put on the bottom of each page.  However, each 
> image is unique and needs to be generated with some 
> information from the xml document.  I know I can do this by 
> using a REST api call and putting a URL in the fo:graphic 
> that dynamically generates the image.  However, I'd rather do 
> it right in the Java code that sets up the Driver.  So, is 
> this possible?  Some thoughts I have, but don't know if they exist:

My guess is that markers with a URL would be the easiest and most standard
way to do this. But I'll take your word for it that you want the callback.

> 1. Can I get a callback that calls my Java code when a 
> certain fo:graphic element is hit and let me dynamically put 
> the XSL:FO content in there?  This would allow me to 
> dynamically generate the images on the fly and put the 
> appropriate image content in .

I think you can do this, but again, it seems like a pain. IIRC correctly,
the FONode class has a getParent() method which can be used to recursively
go up the tree until you get to the Root (keep in mind that this is XML/FO
inheritance, not Java inheritance). I would cache the object that will
generate the image in Root, and, if it does not exist already, write an
FONode method called getRoot() which will recursively go up the tree to Root
and return Root. Then, you'll need to modify the code that creates the image
in the AreaTree, and then use your (presumably) ExternalGraphic node to do
something like the following:
        YourGraphicMaker ygm =
externalGraphic.getRoot().getYourGraphicMaker();
        Image image = ygm.makeGraphic(externalGraphic);
        // pass the image instance where it needs to go.

I have used the above technique successfully to handle global items like
loggers and subsystem servers.

> 2. Can I put custom xsl:fo elements in the document and then 
> register my own "renderers" for dealing with those types?

The renderers are more oriented toward a given output medium, so you are
more likely going to be modifying or extending one to handle your custom
elements, but yes, this general technique could work as well. My guess is
that this is probably even more of a pain than option 1 above. Some
information is here:
http://xml.apache.org/fop/dev/extensions.html

Victor Mote


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

Reply via email to