[prev in list] [next in list] [prev in thread] [next in thread] 

List:       batik-users
Subject:    "svg:" prefix in SVGGraphics2D output
From:       Murray Lang <murray.lang () perth ! wni ! com>
Date:       2004-02-24 3:14:50
Message-ID: 5.2.0.9.0.20040224105424.02bd2610 () mailhost
[Download RAW message or body]

Hi

How do I get SVGGraphics2D to prepend "svg:" to all of the SVG elements it 
creates?
Creating the factory document with the namespace doesn't do it and I can't 
seem to find any clues in the documentation or on the web.

Thanks
Murray

P.S. Here is my code: (I'm using swing tables as a cheat in producing 
tables in SVG)

/// SVG Support
import org.apache.batik.dom.GenericDOMImplementation;
import org.apache.batik.svggen.SVGGraphics2D;
import org.apache.batik.svggen.SVGGeneratorContext;
import org.apache.batik.svggen.SVGGraphics2DIOException;
import org.apache.batik.svggen.SwingSVGPrettyPrint;
import org.w3c.dom.DOMImplementation;
import java.awt.geom.Rectangle2D;

import javax.swing.JTable;
import javax.swing.table.*;
import java.awt.RenderingHints;

/**
  *
  * @author  murray
  */
public class SvgTable
{

     /** Creates a new instance of SvgTable */
     public SvgTable()
     {
     }

     /**
      * @param args the command line arguments
      */
     public static void main(String[] args)
     {
         AbstractTableModel tableModel = new AbstractTableModel()
         {
             String[] columnNames =
             {
                 "First Name",
                 "Last Name",
                 "Sport",
                 "# of Years",
                 "Vegetarian"
             };

             Object[][] rowData = {
             {"Mary", "Campione",
              "Snowboarding", new Integer(5), new Boolean(false)},
             {"Alison", "Huml",
              "Rowing", new Integer(3), new Boolean(true)},
             {"Kathy", "Walrath",
              "Knitting", new Integer(2), new Boolean(false)},
             {"Sharon", "Zakhour",
              "Speed reading", new Integer(20), new Boolean(true)},
             {"Philip", "Milne",
              "Pool", new Integer(10), new Boolean(false)}
             };


             public String getColumnName(int col) {
                 return columnNames[col].toString();
             }
             public int getRowCount() { return rowData.length; }
             public int getColumnCount() { return columnNames.length; }
             public Object getValueAt(int row, int col) {
                 return rowData[row][col];
             }
             public boolean isCellEditable(int row, int col)
                 { return false; }
             public void setValueAt(Object value, int row, int col) {
                 rowData[row][col] = value;
                 //fireTableCellUpdated(row, col);
             }
         };



         JTable table = new JTable(tableModel);
         table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
         JTableHeader tableHeader = table.getTableHeader();
         tableHeader.setSize(400, 20);
         table.setSize(400, 280);
         table.doLayout();

         try
         {
             writeTableAsSvg(tableHeader,
                             table,
                             400, 300,
                             "C:/temp/MyTable.svg");
         }
         catch (SVGGraphics2DIOException e1)
         {
             System.out.println(e1);
         }
         catch (java.io.IOException e2)
         {
             System.out.println(e2);
         }

     }

     protected static void writeTableAsSvg(JTableHeader header,
                                             JTable table,
                                     int width,
                                     int height,
                                     String strFile)
         throws SVGGraphics2DIOException
     {
          // Get a DOMImplementation
         DOMImplementation domImpl = 
GenericDOMImplementation.getDOMImplementation();
         // Create an instance of org.w3c.dom.Document
         org.w3c.dom.Document document = 
domImpl.createDocument("http://www.w3.org/2000/svg", "svg:svg", null);

         /// Create an SVG Context to customise
         SVGGeneratorContext ctx = SVGGeneratorContext.createDefault(document);

         java.awt.Dimension size = new java.awt.Dimension(width, height);

         // Create an instance of the SVG Generator
         SVGGraphics2D svgGenerator = new SVGGraphics2D(ctx, false);
         svgGenerator.setSVGCanvasSize(size);

         svgGenerator.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                       RenderingHints.VALUE_ANTIALIAS_OFF);
         svgGenerator.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                                       RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);

         SwingSVGPrettyPrint.print(header, svgGenerator);
         svgGenerator.translate(0, 20);
         SwingSVGPrettyPrint.print(table, svgGenerator);

         svgGenerator.stream(strFile, false);

     }

}


---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic