作为矢量图之一的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