The following code draws into an SVGGraphics2D, takes the resulting
Document, and attempts to transcode it.
---------------------------------------------
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Graphics2D;
import java.awt.Color;

import java.io.ByteArrayOutputStream;
import java.io.Writer;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.IOException;

import org.apache.batik.svggen.SVGGraphics2D;
import org.apache.batik.dom.GenericDOMImplementation;
import org.apache.batik.dom.svg.SVGDOMImplementation;
import org.apache.batik.transcoder.image.JPEGTranscoder;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;

import org.w3c.dom.Document;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.svg.SVGDocument;

public class TestDOM {

    public void paint(Graphics2D g2d) {
        g2d.setColor(Color.red);
        g2d.draw(new Rectangle(10, 10, 50, 50) );
        g2d.setColor(Color.green);
        g2d.fill(new Rectangle(30, 30, 50, 50) );
    }

    public static void main(String [] args) throws IOException {


        DOMImplementation domImpl = SVGDOMImplementation.getDOMImplementation();
        String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;

        Document document =
            domImpl.createDocument(svgNS, "svg", null);

        // Create an instance of the SVG Generator
        SVGGraphics2D svgGenerator = new SVGGraphics2D(document);
        svgGenerator.setSVGCanvasSize(new Dimension(210,210));

        // Ask to render into the SVG Graphics2D implementation
        TestDOM test = new TestDOM();
        test.paint(svgGenerator);

        // Stream out SVG to the standard output using UTF-8
        // character to byte encoding

        boolean useCSS = true; // we want to use CSS style attribute
        ByteArrayOutputStream baos = new ByteArrayOutputStream( 8192 );
        Writer out = new OutputStreamWriter(baos, "UTF-8");
        svgGenerator.stream(out, useCSS);
        System.out.println( baos.toString() );

        // Now try to transcode the document
        try {
        JPEGTranscoder t = new JPEGTranscoder();

        t.addTranscodingHint(JPEGTranscoder.KEY_QUALITY,
                             new Float(.8));

        TranscoderInput input = new TranscoderInput( document );

        OutputStream ostream = new FileOutputStream("out.jpg");
        TranscoderOutput output = new TranscoderOutput(ostream);

        t.transcode(input, output);

        ostream.flush();
        ostream.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        System.exit(0);

    }
}
------------------------------------------------

Here's the resultant error.  I'm using Batik 1.1.1 on Linux. What, oh,
what, am I doing wrong?

---------------------------
org.apache.batik.transcoder.TranscoderException:
null
Enclosed Exception:
null
        at
org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:262)
        at
org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:126)
        at TestDOM.main(TestDOM.java:74)
---------------------------

-- 
J. David Eisenberg  http://catcode.com/


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to