I am trying to convert the code below to Coldfusion. I am currently stuck on how to convert the "Transformer transformer = TransformerFactory.newInstance().newTransformer()" line to Coldfusion. Can anyone help convert this code?
The error message I get when using transformer = loader.create("javax.xml.transform.TransformerFactory").newInstance().newTransformer();
Error casting an object of type org.apache.xalan.processor.TransformerFactoryImpl cannot be cast to javax.xml.transform.TransformerFactory to an incompatible type. This usually indicates a programming error in Java, although it could also mean you have tried to use a foreign object in a different way than it was designed. org.apache.xalan.processor.TransformerFactoryImpl cannot be cast to javax.xml.transform.TransformerFactory
Document svgXmlDoc = ...
File svgFile = File.createTempFile("graphic-", ".svg");
Transformer transformer = TransformerFactory.newInstance().newTransformer();
DOMSource source2 = new DOMSource(svgXmlDoc);
FileOutputStream fOut = new FileOutputStream(svgFile);
try { transformer.transform(source2, new StreamResult(fOut)); }
finally { fOut.close(); }
// Convert the SVG into PDF
File outputFile = File.createTempFile("result-", ".pdf");
SVGConverter converter = new SVGConverter();
converter.setDestinationType(DestinationType.PDF);
converter.setSources(new String[] { svgFile.toString() });
converter.setDst(outputFile);
converter.execute();
Here is my code so far.
<cfscript>
paths = arrayNew(1);
paths[1] = expandPath("jar\avalon-framework-impl-4.2.0.jar");
paths[2] = expandPath("jar\batik-all-1.7.jar");
paths[3] = expandPath("jar\commons-io-1.3.1.jar");
paths[4] = expandPath("jar\commons-logging-1.0.4.jar");
paths[5] = expandPath("jar\fop-0.9.5.jar");
paths[6] = expandPath("jar\apache-log4j-1.2.15.jar");
paths[7] = expandPath("jar\xml-apis-ext.jar");
paths[8] = expandPath("jar\xmlgraphics-commons-1.3.1.jar");
paths[8] = expandPath("jar\javax.xml-1.3.4.jar");
loader = createObject("component", "javaloader.JavaLoader").init(paths);
destinationtype = loader.create("org.apache.batik.apps.rasterizer.DestinationType");
svgconverter = loader.create("org.apache.batik.apps.rasterizer.SVGConverter");
// SVG available as a DOM object (created programatically by my program)
svgXmlDoc = '<svg><text y="3.58in" x="1.5000in" id="fooddesc1" text-anchor="start" alignment-baseline="baseline">This is a test.</text></svg>';
// Save this SVG into a file (required by SVG -> PDF transformation process)
f = loader.create("java.io.File");
svgFile = f.createTempFile("graphic-", ".svg");
transformer = loader.create("javax.xml.transform.TransformerFactory");
source2 = loader.create("javax.xml.transform.dom.DOMSource").init(svgXmlDoc);
fOut = loader.create("java.io.FileOutputStream").init(svgFile);
</cfscript>