PDFBox合併多個PDF文件


在前一章中,我們已經看到如何將給定的PDF文件分成多個文件。 現在讓我們學習如何將多個PDF文件合併為一個文件。

合併多個PDF文件

使用PDFMergerUtility類的類將多個PDF文件合併到單個PDF文件中,該類提供了將兩個或多個PDF文件合併到單個PDF文件中的方法。

以下是合併多個PDF文件的步驟。

第1步:載入現有的PDF文件

使用PDDocument類的靜態方法load()載入現有的PDF文件。 此方法接受一個檔案物件作為引數,因為這是一個靜態方法,可以使用類名稱呼叫它,如下所示。

File file = new File("path of the document") 
PDDocument document = PDDocument.load(file);

第2步:範例化PDFMergerUtility類

如下所示範例化合併實用程式類。

PDFMergerUtility PDFmerger = new PDFMergerUtility();

第3步:設定目標檔案

使用setDestinationFileName()方法設定目標檔案,如下所示。

PDFmerger.setDestinationFileName("D:/PdfBoxExamples/docs/merged.pdf");

第4步:設定原始檔

使用addSource()方法設定原始檔,如下所示。

PDFmerger.addSource(file1);

第5步:合併文件

使用PDFmerger類的mergeDocuments()方法合併文件,如下所示。

PDFmerger.mergeDocuments();

第6步:關閉文件

最後使用PDDocument類的close()方法關閉文件,如下所示。

document.close();

範例

假設,在目錄:F:\worksp\pdfbox中有兩個PDF文件 - sample1.pdfsample2.pdf,如下所示。

第一個PDF檔案(sample1.pdf):

第二個PDF檔案(sample2.pdf):

本範例演示如何合併上述PDF文件。 在這裡,我們將把sample1.pdfsample2.pdf這兩個PDF文件合併到一個PDF文件 - merged.pdf中。 將此程式碼儲存在名稱為MergePDFs.java的檔案中。

package com.yiibai;

import org.apache.pdfbox.multipdf.PDFMergerUtility;
import org.apache.pdfbox.pdmodel.PDDocument;

import java.io.File; 
import java.io.IOException;

public class MergePDFs {
   public static void main(String[] args) throws IOException {

      //Loading an existing PDF document
      File file1 = new File("F:/worksp/pdfbox/sample1.pdf");
      PDDocument doc1 = PDDocument.load(file1);

      File file2 = new File("F:/worksp/pdfbox/sample2.pdf");
      PDDocument doc2 = PDDocument.load(file2);

      //Instantiating PDFMergerUtility class
      PDFMergerUtility PDFmerger = new PDFMergerUtility();

      //Setting the destination file
      PDFmerger.setDestinationFileName("F:/worksp/pdfbox/merged.pdf");

      //adding the source files
      PDFmerger.addSource(file1);
      PDFmerger.addSource(file2);

      //Merging the two documents
      PDFmerger.mergeDocuments();


      System.out.println("Documents merged");
      //Closing the documents
      doc1.close();
      doc2.close();
   }

}

執行時,上述程式會顯示以下訊息 -

Documents merged

開啟新合成的文件(merged.pdf),如下所示 -