Hmm, try
Fop fop = fopFactory.newFop(foUserAgent);
instead of
Fop fop = fopFactory.newFop(MimeConstants.MIME_FOP_AREA_TREE, foUserAgent);
I've got a suspicion that the renderer override doesn't hook in if you
specify a MIME type. I'll have to debug that.
On 30.07.2009 13:31:38 Georg Datterl wrote:
> Hi Jeremias,
>
> Thanks. Now I'm more confused than before. As you know, I generate an area
> tree, then manipulate my fo file and then generate the final PDF. Now I found
> a case, where the AT puts four table rows on the second page but the final
> PDF has 5 rows. So the values I calculate from the AT don't work any more.
> Using the batch file now gives me 5 rows in AT and PDF. So I guess it's not a
> fop fault. Checking my code, I see I am using mimicRenderer(). Can you see
> any reason why I only get four rows here
>
> FopFactory fopFactory = FopFactory.newInstance();
> fopFactory.setUserConfig(new File("fonts/fop.xconf"));
> FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
> SAXTransformerFactory mpFactory =
> (SAXTransformerFactory)SAXTransformerFactory.newInstance();
> Transformer transformer = mpFactory.newTransformer();
> TransformerHandler handler = mpFactory.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 = fopFactory.newFop(MimeConstants.MIME_FOP_AREA_TREE,
> foUserAgent);
> Result res = new SAXResult(fop.getDefaultHandler());
> transformer.transform(source, res);
> return (org.w3c.dom.Document)domResult.getNode();
>
> but five rows here
>
> FopFactory fopFactory = FopFactory.newInstance();
> fopFactory.setUserConfig(new File("fonts/fop.xconf"));
> FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
> foUserAgent.setAuthor("P3");
> foUserAgent.setCreator(pdfTarget.getAbsolutePath());
> out = new FileOutputStream(pdfTarget);
> out = new BufferedOutputStream(out);
> Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent,
> out);
> TransformerFactory factory = TransformerFactory.newInstance();
> Transformer transformer = factory.newTransformer(); // identity
> transformer
> Source src = new StreamSource(target);
> Result res = new SAXResult(fop.getDefaultHandler());
> transformer.transform(src, res);
>
> Mit freundlichen Grüßen
>
> 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: Jeremias Maerki [mailto:[email protected]]
> Gesendet: Donnerstag, 30. Juli 2009 13:05
> An: [email protected]
> Betreff: Re: configuration difference between -pdf and -at?
>
> Georg,
> by default, FOP uses the configuration under the area tree renderer's own
> MIME type (application/X-fop-areatree). You need to tell the area tree
> renderer to mimic the PDF renderer by specifying:
> -at application/pdf ifbug.xml
>
> Then, it'll take the PDF configuration. Other people may need to produce AT
> XML for AFP or for PostScript where the configuration can be different, so we
> can't just assume PDF is the right one. It has to be explicit.
>
> This is explained in http://xmlgraphics.apache.org/fop/0.95/intermediate.html
> but maybe not well enough.
>
> On 30.07.2009 12:50:04 Georg Datterl wrote:
> > Hi,
> >
> > When I generate a pdf by calling
> >
> > fop.bat -c conf/fop.xconf -fo ifbug.fo -pdf ifbug.pdf
> >
> > everything works fine. But trying to generate the area tree from a
> > similar call
> >
> > fop.bat -c conf/fop.xconf -fo ifbug.fo -at ifbug.xml
> >
> > gives me warnings about fonts not found. Obviously the first call finds the
> > configuration file and can read the fonts configured in
> > fop/renderers/renderer[mime=application/pdf]/fonts. Do I need a different
> > mime type for the area tree?
> >
> > Regards,
> >
> > Georg Datterl
Jeremias Maerki
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]