fo:外部图形问题

时间:2014-05-13 06:40:22

标签: java pdf svg apache-fop nosuchmethoderror

我尝试使用FOP创建包含图像内容的PDF文件。我尝试了很多版本的蜡染库,但我总是收到下面的堆栈跟踪。图像src看起来类似于:" data:image / jpeg; base64,DATA" (DATA是Base64编码的图像内容)。

代码如下所示:

Document xslDoc = getConverterXsl();
FopFactory fopFactory = null;
fopFactory = FopFactory.newInstance();              
FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, pdfOutputStream);
Result res = new SAXResult(fop.getDefaultHandler());
doXslTransform(xslDoc, fopDoc, res);

请帮助我。

祝你好运,   罗兰

java.lang.NoSuchMethodError:org.apache.batik.dom.svg.SAXSVGDocumentFactory.createSVGDocument(Ljava / lang / String; Ljava / io / InputStream;)Lorg / w3c / dom / svg / SVGDocument;     在org.apache.fop.image.loader.batik.PreloaderSVG $ Loader.getImage(PreloaderSVG.java:127)     在org.apache.fop.image.loader.batik.PreloaderSVG $ Loader.access $ 200(PreloaderSVG.java:106)     在org.apache.fop.image.loader.batik.PreloaderSVG.preloadImage(PreloaderSVG.java:74)     at org.apache.xmlgraphics.image.loader.ImageManager.preloadImage(ImageManager.java:175)     at org.apache.xmlgraphics.image.loader.cache.ImageCache.needImageInfo(ImageCache.java:128)     at org.apache.xmlgraphics.image.loader.ImageManager.getImageInfo(ImageManager.java:122)     在org.apache.fop.fo.flow.ExternalGraphic.bind(ExternalGraphic.java:81)     在org.apache.fop.fo.FObj.processNode(FObj.java:124)     在org.apache.fop.fo.FOTreeBuilder $ MainFOHandler.startElement(FOTreeBuilder.java:280)     在org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:175)     at com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.closeStartTag(Unknown Source)     at com.sun.org.apache.xml.internal.serializer.ToSAXHandler.flushPending(Unknown Source)     at com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.endElement(Unknown Source)     at com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.endElement(Unknown Source)     在Converter.template $ dot $ 1()     在Converter.applyTemplates()     在Converter.template $ dot $ 0()     在Converter.applyTemplates()     在Converter.applyTemplates()     在Converter.transform()     在......

1 个答案:

答案 0 :(得分:0)

我下载了蜡染库的源代码和所有引用的jar.Finally它使用上面相同的代码生成PDF格式的图像。这似乎是JAR文件中的冲突。

相关问题