最近因工做須要,想要實現將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