exportsvg.java

来自「用Java开发的、实现类似Visio功能的应用程序源码」· Java 代码 · 共 104 行

JAVA
104
字号

/**
 *    $Id: ExportSVG.java $
 *
 *    Copyright 2004 ~ 2005 JingFei International Cooperation LTD. All rights reserved.
 *
 */
package com.jfimagine.jfgraph.transfer;
  
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Dimension;


import java.io.IOException;
import java.io.Writer;
import java.io.OutputStreamWriter;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
        					
//svg, tiff formats
import org.apache.batik.svggen.SVGGraphics2D;
import org.apache.batik.dom.GenericDOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.DOMImplementation;
import org.apache.batik.transcoder.image.*;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;


import com.jfimagine.utils.log.*;

 /**
 * ExportSVG class is used to output SVG images.
 *
 * @author     CookieMaker    
 *
 * @version $Revision: 1.3.0 $
 */ 
 
public class ExportSVG extends ExportBase{

	/**an internal log utility*/
	private JFLogger m_logger=JFLogManager.getLogger(this.getClass());
	
   	/** 
    	*  Export current page or list to a specified file.
    	*  @param fileName A specified file name to be exported.
    	*/
   	public boolean export(String fileName){
		try{ 
			prepareExport(); 

        		// Get a DOMImplementation
        		DOMImplementation domImpl =
            			GenericDOMImplementation.getDOMImplementation();

        		// Create an instance of org.w3c.dom.Document
        		Document document = domImpl.createDocument(null, "svg", null);

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

        		boolean useCSS = true; // we want to use CSS style attribute


			Writer out =
        			new OutputStreamWriter(
        				new BufferedOutputStream(
        					new FileOutputStream(fileName)), "UTF-8");

        		svgGenerator.stream(out,useCSS);
	        	
        		out.close();
        	
        		return true;      		

        	}catch(IOException e){
        		m_logger.error("export:"+e);
        		return false;
        	}
        	
       }
 
   	/** 
    	*  get export file extension.
    	*  @return the export file extension.
    	*/
   	public String getExportFileExt(){
   		return JFFileFilter.FILEEXT_SVG;
	}

   	/** 
    	*  get export file description
    	*  @return the export file description
    	*/
   	public String getExportFileDesc(){
   		return JFFileFilter.FILEDESC_SVG;
	}
 
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?