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:[email protected]]
Gesendet: Freitag, 10. Juli 2009 18:52
An: [email protected]
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: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]