Jeremias,
Thanks for the quick reply and commit ;)
I am getting the following Exception: java.lang.IllegalArgumentException:
Source not supported: javax.xml.transform.dom.DOMSource.
I have attached my code in the code.txt file. The whole stacktrace is in the
stacktrace.txt file.
I updated my FOP working copy to 615144.
Tx.,
-----Original Message-----
From: Jeremias Maerki [mailto:[EMAIL PROTECTED]
Sent: 25 January 2008 09:31
To: [email protected]
Subject: Re: SVG XML Access
Raphael,
I hadn't implemented support for a DOMSource but have done so now:
http://svn.apache.org/viewvc?rev=615144&view=rev
Take a look at the test case that I've added. It demonstrates how you
can write a URIResolver that returns an SVG DOM. That way you can do all
the SVG manipulation you want. But you have to make sure the DOM
Document is a org.w3c.dom.svg.SVGDocument.
On 25.01.2008 08:03:38 Raphael Parree wrote:
> Hi Jeremias,
>
>
>
> End o last year I wrote a custom URI resolver to augment SVG files with a
> style entry. This has drastically influenced the PDF generation time. I
> recall that during that time you mentioned you were updating the Image
part
> and that it would be easier when that was completed, because the update
> gives access to the SVG XML. I noticed many updates in the Image classes
(in
> the trunk).
>
> Does this mean that there is an alternative to filtering the SVG files
now?
>
>
>
> Tx.,
>
>
>
> Raphael
>
Jeremias Maerki
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
public class SVGFilterURIResolver implements URIResolver {
public Source resolve(String href, String base) throws TransformerException {
if (href.endsWith(".svg")) {
String parser = XMLResourceDescriptor.getXMLParserClassName();
SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser);
try {
Document document = f.createDocument(href);
NodeList styleNodeList =
document.getElementsByTagNameNS("http://www.w3.org/2000/svg", "style");
if (styleNodeList.getLength() > 0) {
Element e = (Element) styleNodeList.item(1);
e.insertBefore(document.createTextNode("marker { overflow:visible;
}"), e.getFirstChild());
}
DOMSource src = new DOMSource(document);
return src;
} catch (IOException e) {
throw new TransformerException("IOException while loading SVG", e);
}
} else
return null;
}
}
java.lang.IllegalArgumentException: Source not supported:
javax.xml.transform.dom.DOMSource
at
org.apache.xmlgraphics.image.loader.util.ImageUtil.closeQuietly(ImageUtil.java:195)
at
org.apache.xmlgraphics.image.loader.ImageManager.getImage(ImageManager.java:252)
at org.apache.fop.render.pdf.PDFRenderer.putImage(PDFRenderer.java:1717)
at
org.apache.fop.render.pdf.PDFRenderer.renderImage(PDFRenderer.java:1663)
at
org.apache.fop.render.AbstractRenderer.renderViewport(AbstractRenderer.java:748)
at
org.apache.fop.render.AbstractPathOrientedRenderer.renderViewport(AbstractPathOrientedRenderer.java:556)
at
org.apache.fop.render.AbstractRenderer.renderInlineArea(AbstractRenderer.java:631)
at
org.apache.fop.render.pdf.PDFRenderer.renderInlineArea(PDFRenderer.java:1329)
at
org.apache.fop.render.AbstractRenderer.renderLineArea(AbstractRenderer.java:606)
at
org.apache.fop.render.pdf.PDFRenderer.renderLineArea(PDFRenderer.java:1320)
at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:532)
at
org.apache.fop.render.AbstractRenderer.renderBlock(AbstractRenderer.java:582)
at
org.apache.fop.render.pdf.PDFRenderer.renderBlock(PDFRenderer.java:1313)
at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:522)
at
org.apache.fop.render.AbstractRenderer.renderBlock(AbstractRenderer.java:582)
at
org.apache.fop.render.pdf.PDFRenderer.renderBlock(PDFRenderer.java:1313)
at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:522)
at
org.apache.fop.render.AbstractRenderer.renderBlock(AbstractRenderer.java:568)
at
org.apache.fop.render.pdf.PDFRenderer.renderBlock(PDFRenderer.java:1313)
at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:522)
at
org.apache.fop.render.AbstractRenderer.renderBlock(AbstractRenderer.java:582)
at
org.apache.fop.render.pdf.PDFRenderer.renderBlock(PDFRenderer.java:1313)
at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:522)
at
org.apache.fop.render.AbstractRenderer.renderBlock(AbstractRenderer.java:582)
at
org.apache.fop.render.pdf.PDFRenderer.renderBlock(PDFRenderer.java:1313)
at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:522)
at
org.apache.fop.render.AbstractRenderer.renderBlock(AbstractRenderer.java:582)
at
org.apache.fop.render.pdf.PDFRenderer.renderBlock(PDFRenderer.java:1313)
at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:522)
at
org.apache.fop.render.AbstractRenderer.renderFlow(AbstractRenderer.java:427)
at
org.apache.fop.render.AbstractRenderer.renderMainReference(AbstractRenderer.java:406)
at
org.apache.fop.render.AbstractRenderer.renderBodyRegion(AbstractRenderer.java:340)
at
org.apache.fop.render.AbstractRenderer.renderRegionViewport(AbstractRenderer.java:285)
at
org.apache.fop.render.AbstractRenderer.renderPageAreas(AbstractRenderer.java:258)
at
org.apache.fop.render.AbstractRenderer.renderPage(AbstractRenderer.java:232)
at
org.apache.fop.render.pdf.PDFRenderer.renderPage(PDFRenderer.java:785)
at
org.apache.fop.area.RenderPagesModel.addPage(RenderPagesModel.java:118)
at
org.apache.fop.layoutmgr.AbstractPageSequenceLayoutManager.finishPage(AbstractPageSequenceLayoutManager.java:312)
at
org.apache.fop.layoutmgr.PageSequenceLayoutManager.finishPage(PageSequenceLayoutManager.java:161)
at
org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:102)
at
org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:234)
at
org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:123)
at
org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:374)
at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:196)
at org.xml.sax.helpers.XMLFilterImpl.endElement(XMLFilterImpl.java:546)
at
eu.trivera.cw.producer.content.producers.documents.extensions.codehighlighting.CodeBlockXMLFilter.endElement(CodeBlockXMLFilter.java:85)
at
net.sf.saxon.event.ContentHandlerProxy.endElement(ContentHandlerProxy.java:391)
at net.sf.saxon.event.ProxyReceiver.endElement(ProxyReceiver.java:174)
at
net.sf.saxon.event.NamespaceReducer.endElement(NamespaceReducer.java:213)
at
net.sf.saxon.event.ComplexContentOutputter.endElement(ComplexContentOutputter.java:417)
at
net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:301)
at net.sf.saxon.instruct.Instruction.process(Instruction.java:94)
at net.sf.saxon.instruct.ForEach.processLeavingTail(ForEach.java:300)
at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:399)
at net.sf.saxon.instruct.Instruction.process(Instruction.java:94)
at net.sf.saxon.instruct.ForEach.processLeavingTail(ForEach.java:300)
at
net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:551)
at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:399)
at
net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:551)
at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:399)
at net.sf.saxon.instruct.Instruction.process(Instruction.java:94)
at
net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:298)
at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:399)
at net.sf.saxon.instruct.Template.applyLeavingTail(Template.java:175)
at
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:343)
at net.sf.saxon.Controller.transformDocument(Controller.java:1735)
at net.sf.saxon.Controller.transform(Controller.java:1559)
at
eu.trivera.cw.producer.content.producers.documents.DocumentProducer.transForm(DocumentProducer.java:180)
at
eu.trivera.cw.producer.content.producers.documents.DocumentProducer.produceDocuments(DocumentProducer.java:70)
at
eu.trivera.cw.producer.content.ContentManager.createDocuments(ContentManager.java:164)
at
eu.trivera.cw.producer.content.ContentManager.startJob(ContentManager.java:82)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]