SVG格式转PDF(java实现)

来源:互联网 发布:vm虚拟机破解版 mac 编辑:程序博客网 时间:2024/06/05 05:30
    作为矢量图之一的SVG格式,在画图过程中尤为重要,通过修改xml格式内容就可以改变图的内容,尤其在工业画图的这些要求比较严格的使用环境,由于svg的容易易改性,决定它不适合用户流转查看,而且svg需要依赖一定的浏览器环境,而PDF格式的文件刚好满足至查看不修改内容的特点,所以就有了这篇svg转pdf格式。    这个例子是由java代码写的。

先给出项目的整体代码分布结构图:
这里写图片描述
其中Svg2Pdf.java代码如下:

package com.burns.svgconvertpdf;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import org.apache.batik.transcoder.Transcoder;import org.apache.batik.transcoder.TranscoderException;import org.apache.batik.transcoder.TranscoderInput;import org.apache.batik.transcoder.TranscoderOutput;import org.apache.fop.svg.PDFTranscoder;public class Svg2Pdf {    public static void main(String[] args) {        try {            Transcoder transcoder = new PDFTranscoder();            TranscoderInput transcoderInput = new TranscoderInput(                    new FileInputStream(new File("test.svg")));            TranscoderOutput transcoderOutput = new TranscoderOutput(                    new FileOutputStream(new File("test.pdf")));            transcoder.transcode(transcoderInput, transcoderOutput);        } catch (FileNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (TranscoderException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

主要使用到的包是batik.jar和fop.jar,剩下的是这两个jar包的依赖包
,svg中的文件内容如下:
这里写图片描述
这里你会注意到svg格式文件在浏览器中100%查看的时候,是需要上下滚动才能看到完整的内容,这个我觉得或许也是svg的一个弊端:当前窗口显示不完整。
下面是pdf的转换图:
这里写图片描述
这个以打开就能完全看到内容,不需要滚动,pdf会自动调节67.5%。这个数字在浏览器中设置为67左右就能看到完整的了,浏览器不支持小数点的!!!
好了,以上就是一个svg转pdf的小例子,
如果想获取代码,可以戳这里:http://pan.baidu.com/s/1dFDe1qh
或这儿:http://download.csdn.net/detail/zp357252539/9546088

0 0
原创粉丝点击