Hi all,

I have been embedding svg inside html macro like this:

{{html}}
<svg ...>
...
</svg>
{{/html}}

and usually I can convert the resulting page to PDF without any problem.
However if I use *xmln:href* in the svg, the PDF converter throws an error
and renders a blank PDF.

Here's an example svg: https://jsfiddle.net/9dt5guab/1/


Here's the stack trace:

 ERROR o.a.f.a.FOUserAgent            - SVG graphic could not be built.
Reason: org.apache.batik.bridge.BridgeException: file:/opt/web/base/./:-1
The attribute "xlink:href" of the element <use> is required
org.apache.batik.bridge.BridgeException: file:/opt/web/base/./:-1
The attribute "xlink:href" of the element <use> is required
        at
org.apache.batik.bridge.SVGUseElementBridge.buildCompositeGraphicsNode(Unknown
Source)
        at
org.apache.batik.bridge.SVGUseElementBridge.createGraphicsNode(Unknown
Source)
        at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(Unknown
Source)
        at org.apache.batik.bridge.GVTBuilder.buildComposite(Unknown Source)
        at org.apache.batik.bridge.GVTBuilder.build(Unknown Source)
        at
org.apache.fop.render.pdf.PDFImageHandlerSVG.handleImage(PDFImageHandlerSVG.java:104)
        at
org.apache.fop.render.intermediate.AbstractIFPainter.drawImage(AbstractIFPainter.java:249)
        at
org.apache.fop.render.intermediate.AbstractIFPainter.drawImage(AbstractIFPainter.java:205)
        at
org.apache.fop.render.intermediate.AbstractIFPainter.drawImageUsingImageHandler(AbstractIFPainter.java:170)
        at
org.apache.fop.render.intermediate.AbstractIFPainter.drawImageUsingDocument(AbstractIFPainter.java:319)
        at
org.apache.fop.render.pdf.PDFPainter.drawImage(PDFPainter.java:286)
        at
org.apache.fop.render.intermediate.IFRenderer.renderForeignObject(IFRenderer.java:1314)
        at
org.apache.fop.render.AbstractRenderer.renderInlineViewport(AbstractRenderer.java:862)
        at
org.apache.fop.render.AbstractPathOrientedRenderer.renderInlineViewport(AbstractPathOrientedRenderer.java:832)
        at
org.apache.fop.render.intermediate.IFRenderer.renderInlineViewport(IFRenderer.java:864)
        at
org.apache.fop.render.AbstractRenderer.renderInlineArea(AbstractRenderer.java:715)
        at
org.apache.fop.render.intermediate.IFRenderer.renderInlineArea(IFRenderer.java:928)
        at
org.apache.fop.render.AbstractRenderer.renderLineArea(AbstractRenderer.java:690)
        at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:572)
        at
org.apache.fop.render.AbstractRenderer.renderBlock(AbstractRenderer.java:613)
        at
org.apache.fop.render.intermediate.IFRenderer.renderBlock(IFRenderer.java:1000)
        at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:557)
        at
org.apache.fop.render.AbstractRenderer.renderBlock(AbstractRenderer.java:613)
        at
org.apache.fop.render.intermediate.IFRenderer.renderBlock(IFRenderer.java:1000)
        at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:557)
        at
org.apache.fop.render.AbstractRenderer.renderBlock(AbstractRenderer.java:613)
        at
org.apache.fop.render.intermediate.IFRenderer.renderBlock(IFRenderer.java:1000)
        at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:557)
        at
org.apache.fop.render.AbstractRenderer.renderBlock(AbstractRenderer.java:613)
        at
org.apache.fop.render.intermediate.IFRenderer.renderBlock(IFRenderer.java:1000)
        at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:557)
        at
org.apache.fop.render.AbstractRenderer.renderFlow(AbstractRenderer.java:457)
        at
org.apache.fop.render.AbstractPathOrientedRenderer.renderFlow(AbstractPathOrientedRenderer.java:785)
        at
org.apache.fop.render.AbstractRenderer.renderMainReference(AbstractRenderer.java:434)
        at
org.apache.fop.render.AbstractRenderer.renderBodyRegion(AbstractRenderer.java:358)
        at
org.apache.fop.render.AbstractRenderer.renderRegionViewport(AbstractRenderer.java:305)
        at
org.apache.fop.render.intermediate.IFRenderer.renderRegionViewport(IFRenderer.java:739)
        at
org.apache.fop.render.AbstractRenderer.renderPageAreas(AbstractRenderer.java:270)
        at
org.apache.fop.render.AbstractRenderer.renderPage(AbstractRenderer.java:243)
        at
org.apache.fop.render.intermediate.IFRenderer.renderPage(IFRenderer.java:587)
        at
org.apache.fop.area.RenderPagesModel.addPage(RenderPagesModel.java:123)
        at
org.apache.fop.layoutmgr.AbstractPageSequenceLayoutManager.finishPage(AbstractPageSequenceLayoutManager.java:315)
        at
org.apache.fop.layoutmgr.PageSequenceLayoutManager.finishPage(PageSequenceLayoutManager.java:216)
        at
org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:140)
        at
org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:267)
        at
org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:130)
        at
org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:360)
        at
org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:190)
        at
org.apache.xalan.transformer.TransformerIdentityImpl.endElement(TransformerIdentityImpl.java:1102)
        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
Source)
        at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
Source)
        at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
        at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
        at
com.xpn.xwiki.pdf.impl.PdfExportImpl.renderXSLFO(PdfExportImpl.java:357)
        at
com.xpn.xwiki.pdf.impl.PdfExportImpl.exportXHTML(PdfExportImpl.java:304)
        at
com.xpn.xwiki.pdf.impl.PdfExportImpl.exportHtml(PdfExportImpl.java:257)
        at
com.xpn.xwiki.pdf.impl.PdfExportImpl.export(PdfExportImpl.java:243)
        at com.xpn.xwiki.web.ExportAction.export(ExportAction.java:239)
        at com.xpn.xwiki.web.ExportAction.render(ExportAction.java:81)
        at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:432)
        at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:193)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
        at
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:845)
        at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1689)
        at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:115)
        at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1676)
        at
org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:127)
        at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1676)
        at
org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
        at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1676)
        at
org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
        at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1676)
        at
org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
        at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1676)
        at
org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:137)
        at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
        at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
        at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
        at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
        at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
        at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)
        at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
        at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
        at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
        at
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)
        at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
        at org.eclipse.jetty.server.Server.handle(Server.java:523)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
        at
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
        at
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
        at
org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:202)
        at
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
        at
org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
        at
org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
        at
org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
        at
org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
        at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
        at
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
        at java.lang.Thread.run(Thread.java:745)


I guess this is a problem with the converting library. Any help?
_______________________________________________
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to