Java 插入和转换SVG到PDF

概述

最近因工作需要,想要实现将SVG格式转换成PDF,同时还希望能够将SVG格式的文档内容完整地插入到已有的PDF中。经过多方位调查和测试,发现Spire.PDF for Java控件能够实现以上两种功能。现将演示代码分享出来,方便有需求的人参考。

在运行代码前,需要将产品依赖包导入IDEA中。导入方式有两种:其一,在官网上下载最新版Spire.PDF for Java 3.10.5产品包,解压后将lib文件夹下的Spire.Pdf.jar手动导入IDEA中;其二推荐使用),在IDEA中创建一个Maven项目,然后在pom.xml文件中键入以下代码,最后点击“Import Changes”即可。

<repositories>

       <repository>

           <id>com.e-iceblue</id>

           <url>http://repo.e-iceblue.cn/repository/maven-public/</url>

       </repository>

    </repositories>

<dependencies>

    <dependency>

       <groupId> e-iceblue </groupId>

       <artifactId>spire.pdf</artifactId>

       <version>3.10.5</version>

    </dependency>

</dependencies>

最终导入效果如下图所示:

代码示例:

示例SVG文档如下:

【示例1】插入SVGPDF

import com.spire.pdf.FileFormat;

import com.spire.pdf.PdfDocument;

import com.spire.pdf.graphics.PdfTemplate;

import java.awt.geom.Point2D;

public class InsertSVG {

public static void main(String[] args) {

//加载示例SVG文档

PdfDocument doc1 = new PdfDocument();

doc1.loadFromSvg("C:\\Users\\Test1\\Desktop\\Sample.svg");

//加载示例PDF文档

PdfDocument doc2 = new PdfDocument();

doc2.loadFromFile("C:\\Users\\Test1\\Desktop\\Test.pdf");

//将SVG文档内容插入到PDF文档中

PdfTemplate template = doc1.getPages().get(0).createTemplate();

template.draw(doc2.getPages().get(0).getCanvas(),new Point2D.Float());

//保存结果文档

doc2.saveToFile("output/InsertSVG.pdf", FileFormat.PDF);

    }

}

效果图:

【示例2】将SVG转换成PDF

import com.spire.pdf.FileFormat;

import com.spire.pdf.PdfDocument;

public class SVGToPDF {

public static void main(String[] args) {

//加载示例SVG文档

PdfDocument doc = new PdfDocument();

doc.loadFromSvg("C:\\Users\\Test1\\Desktop\\Sample.svg");

//保存为PDF文档

doc.saveToFile("output/ToPDF.pdf", FileFormat.PDF);

    }

}

效果图:

总结

Spire.PDF for Java除了支持将SVG转换成PDF外,还支持其他许多转换功能,比如,将PDF转换成PDF/A, Word, Excel, HTML, SVG, XPS等。有其他转换需求的朋友也可以一试。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章