Hi Tom, 

I'm not quite sure I understand what you want to do. You are rendering FO to 
AT, manipulate the AT and then generate a PDF. I don't think you can render the 
PDF, then manipulate the AT and rerender the changed nodes into the previously 
generated PDF. You can of course generate the AT, then manipulate it, then 
generate the PDF based on the manipulated AT. 

Regards,
 
Georg Datterl
 
------ Kontakt ------
 
Georg Datterl
 
Geneon media solutions gmbh
Gutenstetter Straße 8a
90449 Nürnberg
 
HRB Nürnberg: 17193
Geschäftsführer: Yong-Harry Steiert 

Tel.: 0911/36 78 88 - 26
Fax: 0911/36 78 88 - 20
 
www.geneon.de
 
Weitere Mitglieder der Willmy MediaGroup:
 
IRS Integrated Realization Services GmbH:    www.irs-nbg.de 
Willmy PrintMedia GmbH:                            www.willmy.de
Willmy Consult & Content GmbH:                 www.willmycc.de 
-----Ursprüngliche Nachricht-----
Von: TomWilcox [mailto:wil...@hp.com] 
Gesendet: Montag, 13. Juli 2009 12:06
An: fop-users@xmlgraphics.apache.org
Betreff: Re: AW: Area Tree Handling


Thanks Georg,

That's great. I was doing something a bit similar however I did not use the sax 
result to get a node of the DOM tree and traverse using XPath. 

I am not sure this will be efficient enough for me as I need to traverse, 
modify and then render various nodes repeatedly in a very short space of time. 
I was keen to find a method that would allow me to alter and reevaluate a 
fragment of the area tree (rerendering that part of the AT using FOP without 
wasting time, rendering the rest).

So I don't suppose anyone knows a way to handle, manipulate and re-render a 
fragment of the area tree using FOP?

I will keep experimenting in the meantime!

Cheers,
Tom





Georg Datterl wrote:
> 
> Hi Tom,
> 
> I get the area tree using
> 
>             FOUserAgent foUserAgent = getFopFactory().newFOUserAgent();
>             Transformer transformer = 
> getMultipassFactory().newTransformer();
>             TransformerHandler handler = 
> getMultipassFactory().newTransformerHandler();
>             DOMResult domResult = new DOMResult();
>             handler.setResult(domResult);
> 
>             org.apache.fop.render.Renderer targetRenderer =
>             foUserAgent.getRendererFactory().createRenderer(
>                             foUserAgent, MimeConstants.MIME_PDF);
> 
>             XMLRenderer renderer = new XMLRenderer();
>             renderer.mimicRenderer(targetRenderer);
>             renderer.setContentHandler(handler);
>             renderer.setUserAgent(foUserAgent);
> 
>             foUserAgent.setRendererOverride(renderer);
>             
>             Fop fop =
> getFopFactory().newFop(MimeConstants.MIME_FOP_AREA_TREE, foUserAgent);
>             Result res = new SAXResult(fop.getDefaultHandler());
>             transformer.transform(source, res);
>             org.w3c.dom.Document doc = domResult.getNode();
> 
> Then I get values from the tree through Xpath
> 
>               XPathFactory factory=XPathFactory.newInstance();
>               XPath xPath=factory.newXPath(); 
>               NodeList nl =
> (NodeList)xPath.evaluate("//blo...@prod-id='"+DT_TAG+id+"']", doc, 
> XPathConstants.NODESET);
>               xPath.evaluate(".//blo...@prod-id='"+L1_TAG+id+"']/@bpd", 
> nl.item(i),
> XPathConstants.NUMBER)
> 
> The blocks I'm interested in have well-known ids and I'm interested in 
> more than one information below the node with id DT_TAGxx, that's why 
> I use a nodelist. When you find a smarter way to get the information, 
> please tell me, cause this xpath solution is not very fast in large 
> documents...
> 
> Regards,
>  
> Georg Datterl
>  
> ------ Kontakt ------
>  
> Georg Datterl
>  
> Geneon media solutions gmbh
> Gutenstetter Straße 8a
> 90449 Nürnberg
>  
> HRB Nürnberg: 17193
> Geschäftsführer: Yong-Harry Steiert
> 
> Tel.: 0911/36 78 88 - 26
> Fax: 0911/36 78 88 - 20
>  
> www.geneon.de
>  
> Weitere Mitglieder der Willmy MediaGroup:
>  
> IRS Integrated Realization Services GmbH:    www.irs-nbg.de 
> Willmy PrintMedia GmbH:                            www.willmy.de
> Willmy Consult & Content GmbH:                 www.willmycc.de 
> -----Ursprüngliche Nachricht-----
> Von: TomWilcox [mailto:wil...@hp.com]
> Gesendet: Freitag, 10. Juli 2009 18:52
> An: fop-users@xmlgraphics.apache.org
> Betreff: Area Tree Handling
> 
> 
> Hi,
> 
> First of all, I am a FOP dummy. I can make PDFs from FO but I don't 
> know about the inner workings.
> 
> I have FOP 0.95 embedded in my Java application. I would like to 
> construct an FO document and modify/examine the AreaTree for it on the fly.
> 
> This is in an attempt to fill blocks (of set size and position) on a 
> page with text/graphics and until the areatree info shows that block is full.
> 
> I would like to do this as fast as possible and I thought this would 
> imply the best route is to get hold of the areatree object in my 
> application and modify/access the objects of interest. (Or, failing 
> that, to get hold area tree xml fragments maybe)..
> 
> Can anyone tell me how I might go about achieving this?
> 
> Or even better, can anyone point me in the direction of any good 
> tutorials/examples that show Java code using embedded FOP to generate 
> an area tree object for an FO stream/file and then modify it with code..?
> 
> That would be awesome :)
> 
> Thanks in advance,
> Tom
> --
> View this message in context:
> http://www.nabble.com/Area-Tree-Handling-tp24431098p24431098.html
> Sent from the FOP - Users mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: fop-users-unsubscr...@xmlgraphics.apache.org
> For additional commands, e-mail: fop-users-h...@xmlgraphics.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: fop-users-unsubscr...@xmlgraphics.apache.org
> For additional commands, e-mail: fop-users-h...@xmlgraphics.apache.org
> 
> 
> 

--
View this message in context: 
http://www.nabble.com/Area-Tree-Handling-tp24431098p24458974.html
Sent from the FOP - Users mailing list archive at Nabble.com.


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


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

Reply via email to