
Hello, It is a problem of the Apache Batik's DOM implementation. Batik is a library used by Apache FOP for SVG graphics. The ClassCastException occurs in the method org.apache.batik.dom.svg.SVGOMDocument.getRootElement(). I will report the problem to the Apache FOP developers. The strange thing is that the transformation works with Saxon 8 and with the Xalan implementation that comes with oXygen but it does not work with Saxon 6.5 or with the Xalan implementation that comes with the Java virtual machine. In the current version oXygen uses Saxon 6.5. I think we will have to use Saxon 8 for applying FOP as the built-in FO processor in oXygen. As a workaround you should define an external FO processor in oXygen based also on the libraries of the built-in FOP processor but using Saxon 8 instead of Saxon 6.5 and use this processor instead of the built-in FO processor in the transformation scenario applied to embedding.fo. To create an external FO processor go to Options -> Preferences -> XML -> XSLT/FO/XQuery -> FO Processors and add a new processor to the table with the following command line: java -cp "/Applications/oxygen82/lib/fop.jar:/Applications/oxygen82/lib/avalon-framework-4.2.0.jar:/Applications/oxygen82/lib/batik-all-1.6.jar:/Applications/oxygen82/lib/commons-io-1.1.jar:/Applications/oxygen82/lib/xmlgraphics-commons-1.1.jar:/Applications/oxygen82/lib/commons-logging-1.0.4.jar:/Applications/oxygen82/lib/saxon8.jar:/Applications/oxygen82/lib/saxon8-dom.jar" org.apache.fop.cli.Main -fo ${fo} -${method} ${out} (no end-of-line characters in the command line) After defining the external FO processor you have to select it in the transformation scenario edit dialog, the FO Processor tab, the Processor combo box before applying the scenario. Regards, Sorin Wittern Christian wrote:
Hi there,
Here is a problem I am trying to solve:
I want to print a file that contains inline SVG. There is a sample on the FOP website at http://xmlgraphics.apache.org/fop/dev/svg.html - embedding.fo together with embedding.pdf which shows the result of the transform. Now, when I try to transform this file with Oxygen 8.2, I get the following error: (This is on a intel Mac running Mac OS X 10.4.9) Any help appreciated, Christian
Started: "/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/bin/java" -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl -Dorg.xml.sax.driver=org.apache.xerces.parsers.SAXParser -cp "/Applications/oxygen82/lib/xml-apis.jar::/Applications/oxygen82/lib/xercesImpl.jar::/Applications/oxygen82/lib/fop.jar::/Applications/oxygen82/lib/avalon-framework-4.2.0.jar::/Applications/oxygen82/lib/batik-all-1.6.jar::/Applications/oxygen82/lib/commons-io-1.1.jar::/Applications/oxygen82/lib/xmlgraphics-commons-1.1.jar::/Applications/oxygen82/lib/commons-logging-1.0.4.jar::/Applications/oxygen82/lib/saxon.jar:" org.apache.fop.cli.Main -c "/Users/chris/res/config/fop/userconfig.xml" -fo /private/tmp/embedding.fo_fo -pdf /private/tmp/embedding.pdf Jun 8, 2007 5:25:55 PM org.apache.fop.fo.FONode attributeWarning WARNING: Warning(1254/16): fo:table, table-layout="auto" is currently not supported by FOP Jun 8, 2007 5:25:55 PM org.apache.fop.fo.FONode attributeWarning WARNING: Warning(1384/55): fo:table, table-layout="auto" is currently not supported by FOP Jun 8, 2007 5:25:55 PM org.apache.fop.cli.Main startFOP SEVERE: Exception javax.xml.transform.TransformerException: java.lang.ClassCastException: org.apache.batik.dom.GenericElement at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:168) at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:115) at org.apache.fop.cli.Main.startFOP(Main.java:160) at org.apache.fop.cli.Main.main(Main.java:191)
---------
javax.xml.transform.TransformerException: java.lang.ClassCastException: org.apache.batik.dom.GenericElement at com.icl.saxon.IdentityTransformer.transform(IdentityTransformer.java:61) at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:165) at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:115) at org.apache.fop.cli.Main.startFOP(Main.java:160) at org.apache.fop.cli.Main.main(Main.java:191) Caused by: java.lang.ClassCastException: org.apache.batik.dom.GenericElement at org.apache.batik.dom.svg.SVGOMDocument.getRootElement(Unknown Source) at org.apache.fop.fo.extensions.svg.SVGElement.getDimension(SVGElement.java:107) at org.apache.fop.fo.flow.InstreamForeignObject.prepareIntrinsicSize(InstreamForeignObject.java:103) at org.apache.fop.fo.flow.InstreamForeignObject.getIntrinsicWidth(InstreamForeignObject.java:115) at org.apache.fop.layoutmgr.inline.AbstractGraphicsLayoutManager.getInlineArea(AbstractGraphicsLayoutManager.java:129) at org.apache.fop.layoutmgr.inline.AbstractGraphicsLayoutManager.getNextKnuthElements(AbstractGraphicsLayoutManager.java:238) at org.apache.fop.layoutmgr.inline.LineLayoutManager.collectInlineKnuthElements(LineLayoutManager.java:658) at org.apache.fop.layoutmgr.inline.LineLayoutManager.getNextKnuthElements(LineLayoutManager.java:593) at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:284) at org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:113) at org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:106) at org.apache.fop.layoutmgr.PageSequenceLayoutManager$PageBreaker.getNextKnuthElements(PageSequenceLayoutManager.java:272) at org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:554) at org.apache.fop.layoutmgr.PageSequenceLayoutManager$PageBreaker.getNextBlockList(PageSequenceLayoutManager.java:264) at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:301) at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:263) at org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:157) at org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:385) at org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:148) at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:378) at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:194) 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.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at com.icl.saxon.IdentityTransformer.transform(IdentityTransformer.java:59) ... 4 more --------- java.lang.ClassCastException: org.apache.batik.dom.GenericElement at org.apache.batik.dom.svg.SVGOMDocument.getRootElement(Unknown Source) at org.apache.fop.fo.extensions.svg.SVGElement.getDimension(SVGElement.java:107) at org.apache.fop.fo.flow.InstreamForeignObject.prepareIntrinsicSize(InstreamForeignObject.java:103) at org.apache.fop.fo.flow.InstreamForeignObject.getIntrinsicWidth(InstreamForeignObject.java:115) at org.apache.fop.layoutmgr.inline.AbstractGraphicsLayoutManager.getInlineArea(AbstractGraphicsLayoutManager.java:129) at org.apache.fop.layoutmgr.inline.AbstractGraphicsLayoutManager.getNextKnuthElements(AbstractGraphicsLayoutManager.java:238) at org.apache.fop.layoutmgr.inline.LineLayoutManager.collectInlineKnuthElements(LineLayoutManager.java:658) at org.apache.fop.layoutmgr.inline.LineLayoutManager.getNextKnuthElements(LineLayoutManager.java:593) at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:284) at org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:113) at org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:106) at org.apache.fop.layoutmgr.PageSequenceLayoutManager$PageBreaker.getNextKnuthElements(PageSequenceLayoutManager.java:272) at org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:554) at org.apache.fop.layoutmgr.PageSequenceLayoutManager$PageBreaker.getNextBlockList(PageSequenceLayoutManager.java:264) at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:301) at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:263) at org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:157) at org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:385) at org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:148) at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:378) at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:194) 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.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at com.icl.saxon.IdentityTransformer.transform(IdentityTransformer.java:59) at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:165) at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:115) at org.apache.fop.cli.Main.startFOP(Main.java:160) at org.apache.fop.cli.Main.main(Main.java:191) Process ended with exit code: 1