最近因工做须要,想要实现将SVG格式转换成PDF,同时还但愿可以将SVG格式的文档内容完整地插入到已有的PDF中。通过多方位调查和测试,发现Spire.PDF for Java控件可以实现以上两种功能。现将演示代码分享出来,方便有需求的人参考。html
在运行代码前,须要将产品依赖包导入IDEA中。导入方式有两种:其一,在官网上下载最新版Spire.PDF for Java 3.10.5产品包,解压后将lib文件夹下的Spire.Pdf.jar手动导入IDEA中;其二(推荐使用),在IDEA中建立一个Maven项目,而后在pom.xml文件中键入如下代码,最后点击“Import Changes”便可。java
<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>
最终导入效果以下图所示:maven
示例SVG文档以下:svg
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:UsersTest1DesktopSample.svg"); //加载示例PDF文档 PdfDocument doc2 = new PdfDocument(); doc2.loadFromFile("C:UsersTest1DesktopTest.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); } }
效果图:测试
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:UsersTest1DesktopSample.svg"); //保存为PDF文档 doc.saveToFile("output/ToPDF.pdf", FileFormat.PDF); } }
效果图:url
Spire.PDF for Java除了支持将SVG转换成PDF外,还支持其余许多转换功能,好比,将PDF转换成PDF/A, Word, Excel, HTML, SVG, XPS等。有其余转换需求的朋友也能够一试。spa