PDFBox - 拆分 PDF 文件
在上一章中,我們學習瞭如何向 PDF 文件新增 JavaScript。現在讓我們學習如何將給定的 PDF 文件拆分為多個文件。
拆分 PDF 文件中的頁面
您可以使用名為 Splitter 的類將給定的 PDF 文件拆分為多個 PDF 文件。此類用於將給定的 PDF 文件拆分為多個其他文件。
以下是拆分現有 PDF 文件的步驟
步驟 1:載入現有 PDF 文件
使用 **PDDocument** 類的靜態方法 **load()** 載入現有 PDF 文件。此方法接受檔案物件作為引數,由於這是一個靜態方法,因此您可以使用類名呼叫它,如下所示。
File file = new File("path of the document")
PDDocument document = PDDocument.load(file);
步驟 2:例項化 Splitter 類
名為 **Splitter** 的類包含用於拆分給定 PDF 文件的方法,因此,例項化此類,如下所示。
Splitter splitter = new Splitter();
步驟 3:拆分 PDF 文件
您可以使用 **Splitter** 類的 **split()** 方法拆分給定文件。此方法接受 **PDDocument** 類的物件作為引數。
List<PDDocument> Pages = splitter.split(document);
**split()** 方法將給定文件的每一頁拆分為單個文件,並將所有這些文件以列表的形式返回。
步驟 4:建立迭代器物件
為了遍歷文件列表,您需要獲取上面步驟中獲取的列表的迭代器物件,您需要使用 **listIterator()** 方法獲取列表的迭代器物件,如下所示。
Iterator<PDDocument> iterator = Pages.listIterator();
步驟 5:關閉文件
最後,使用 **PDDocument** 類的 **close()** 方法關閉文件,如下所示。
document.close();
示例
假設在路徑 **C:\PdfBox_Examples\** 中有一個名為 **sample.pdf** 的 PDF 文件,並且此文件包含兩頁——一頁包含影像,另一頁包含文字,如下所示。
此示例演示瞭如何拆分上述 PDF 文件。在這裡,我們將名為 **sample.pdf** 的 PDF 文件拆分為兩個不同的文件 **sample1.pdf** 和 **sample2.pdf**。將此程式碼儲存在名為 **SplitPages.java** 的檔案中。
import org.apache.pdfbox.multipdf.Splitter;
import org.apache.pdfbox.pdmodel.PDDocument;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Iterator;
public class SplitPages {
public static void main(String[] args) throws IOException {
//Loading an existing PDF document
File file = new File("C:/PdfBox_Examples/sample.pdf");
PDDocument document = PDDocument.load(file);
//Instantiating Splitter class
Splitter splitter = new Splitter();
//splitting the pages of a PDF document
List<PDDocument> Pages = splitter.split(document);
//Creating an iterator
Iterator<PDDocument> iterator = Pages.listIterator();
//Saving each page as an individual document
int i = 1;
while(iterator.hasNext()) {
PDDocument pd = iterator.next();
pd.save("C:/PdfBox_Examples/sample"+ i++ +".pdf");
}
System.out.println("Multiple PDF’s created");
document.close();
}
}
使用以下命令從命令提示符編譯並執行儲存的 Java 檔案
javac SplitPages.java java SplitPages
執行後,上述程式將加密給定的 PDF 文件並顯示以下訊息。
Multiple PDF’s created
如果您驗證給定的路徑,您可以觀察到建立了多個 PDF,名稱為 **sample1** 和 **sample2**,如下所示。