隨着PDF文檔在平常工做學習中的運用愈來愈普遍,爲了便於更好地儲存和管理文檔,不可避免地會遇到將多個PDF文檔合爲一個文檔,或將一個PDF文檔拆分紅若干個文檔的操做。本文就將詳細介紹如何使用Java程序來對PDF文檔進行合併及拆分。html
方法1:經過官網下載獲取jar包。解壓後將lib文件夾下的Spire.Pdf.jar文件導入Java程序。(以下圖)
java
方法2:經過maven倉庫安裝導入。具體安裝詳解參見此網頁。app
方法1:加載三個獨立的PDF文檔,而後將第2、第三個PDF文檔中的數據插入到第一個文檔。maven
import com.spire.pdf.PdfDocument; public class MergeDocument { public static void main(String[] args) { String[] files = new String[] { "C:\\Users\\Test1\\Desktop\\Sample1.pdf", "C:\\Users\\Test1\\Desktop\\Sample2.pdf", "C:\\Users\\Test1\\Desktop\\Sample3.pdf", }; String outputFile = "output/MergeDocument.pdf"; //建立PDFDocument示例並加載三個示例文檔 PdfDocument[] docs = new PdfDocument[files.length]; PdfDocument doc = new PdfDocument(); for (int i = 0; i < files.length; i++) { docs[i] = new PdfDocument(); docs[i].loadFromFile(files[i]); } //添加第一頁並寫入第一個示例文檔的數據 docs[0].appendPage(docs[1]); //將另外兩個文檔的數據插入新的頁面 for (int i = 0; i < docs[2].getPages().getCount(); i = i + 2) { docs[0].insertPage(docs[2], i); } // 保存文檔 docs[0].saveToFile(outputFile); doc.close(); } }
方法2:經過流的方式加載三個示例文檔,並使用mergeFiles(streams)方法將多個PDF文件合併爲一個PDF文檔。工具
import com.spire.pdf.*; import java.io.*; public class MergeFilesByStream { public static void main(String[] args) throws FileNotFoundException { String outputFile = "output/mergeFile.pdf"; FileInputStream stream1 = new FileInputStream(new File("C:\\Users\\Test1\\Desktop\\Sample1.pdf")); FileInputStream stream2 = new FileInputStream(new File("C:\\Users\\Test1\\Desktop\\Sample2.pdf")); FileInputStream stream3 = new FileInputStream(new File("C:\\Users\\Test1\\Desktop\\Sample3.pdf")); //加載PDF示例文檔 InputStream[] streams = new FileInputStream[]{stream1, stream2, stream3}; //合併PDF文檔 PdfDocumentBase doc = PdfDocument.mergeFiles(streams); //保存文檔 doc.save(outputFile); doc.close(); } }
文檔合併效果:學習
原PDF文檔以下:spa
方式1:將一個PDF文檔均分爲多個PDF(每一個PDF包含1頁)。3d
import com.spire.pdf.*; public class SplitFile { public static void main(String[] args) { //加載PDF文檔 PdfDocument doc = new PdfDocument(); doc.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.pdf"); //拆分爲多個PDF文檔 doc.split("output/splitDocument-{0}.pdf", 0); doc.close(); } }
文檔拆分效果:code
方式2:將一個PDF文檔拆分爲2個或多個PDF(每一個PDF可包含不用的頁數)。htm
如下代碼將原PDF文檔的第1-4頁拆分爲一個PDF文檔,第5-9頁拆分爲另外一個PDF文檔:
import com.spire.pdf.*; import com.spire.pdf.graphics.PdfMargins; import java.awt.geom.Point2D; public class SplitFile2 { public static void main(String[] args) { //加載PDF文檔 PdfDocument doc = new PdfDocument(); doc.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.pdf"); //新建一個PDF文檔 PdfDocument newDoc1 = new PdfDocument(); PdfPageBase page; //將原PDF文檔的第1頁到3頁頁添加至新建的PDF for(int i = 0;i<4;i++) { page = newDoc1.getPages().add(doc.getPages().get(i).getSize(), new PdfMargins(0)); doc.getPages().get(i).createTemplate().draw(page, new Point2D.Float(0,0)); } //保存文檔 newDoc1.saveToFile("output/SplitDoc1.pdf"); //新建另外一個PDF文檔 PdfDocument newDoc2 = new PdfDocument(); //將原PDF文檔的第4至9頁添加至新建的PDF for(int i = 4;i<9;i++) { page = newDoc2.getPages().add(doc.getPages().get(i).getSize(), new PdfMargins(0)); doc.getPages().get(i).createTemplate().draw(page, new Point2D.Float(0,0)); } //保存文檔 newDoc2.saveToFile("output/SplitDoc2.pdf"); } }
文檔拆分效果:
(本文完)