/** * Writes SVG to an output stream. * * @param svgDocument * the document to output * @param writer * the stream to write the document to */ public static void writeSVG(SVGDocument svgDocument, Writer writer) { StringWriter sw = new StringWriter(); try { TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); Node node = svgDocument.getDocumentElement(); Source src = new DOMSource(node); Result dest = new StreamResult(sw); transformer.transform(src, dest); PrettyPrinter pp = new PrettyPrinter(); pp.print(new StringReader(sw.toString()), writer); } catch (TransformerConfigurationException e) { e.printStackTrace(new PrintWriter(writer)); } catch (TransformerException e) { e.printStackTrace(new PrintWriter(writer)); } catch (TranscoderException e) { e.printStackTrace(new PrintWriter(writer)); } catch (IOException e) { e.printStackTrace(new PrintWriter(writer)); } }
}catch(TranscoderException e){ StringWriter trace = new StringWriter(); e.printStackTrace(new PrintWriter(trace));
ex.printStackTrace(); throw new IOException("Couldn't convert SVG");
e.printStackTrace(); } catch (TranscoderException e) { e.printStackTrace(); } catch (SVGGraphics2DIOException e) { e.printStackTrace();
public BufferedImage getRasterizedSVG() { if (rasterizedSVG != null) { return rasterizedSVG; } try { rasterizedSVG = new BufferedImage( (int) Math.round(getPageSize().getWidth()), (int) Math.round(getPageSize().getHeight()), BufferedImage.TYPE_INT_ARGB); ImageTranscoder transcoder = new ImageTranscoder() { @Override public BufferedImage createImage(int width, int height) { return rasterizedSVG; } @Override public void writeImage(BufferedImage bufferedImage, TranscoderOutput transcoderOutput) throws TranscoderException { } }; transcoder.transcode(new TranscoderInput(getSVG()), null); } catch (TranscoderException e) { e.printStackTrace(); } return rasterizedSVG; } }