📜  PDFBox合并PDF文档

📅  最后修改于: 2021-01-07 07:48:36             🧑  作者: Mango

PDFBox合并PDF文档

我们可以合并多个PDF文件合并为一个PDF文件。使用PDFBox合并PDF文档并不简单。我们可以使用PDFMergerUtility类合并PDF文档。此类提供了获取多页或多页PDF文档并将它们合并为一个PDF文档所需的一切。我们可以根据需要合并任意数量的文件。

以下是逐步过程,用于合并目录中的所有PDF文件,而不必传递每个文件作为参数。

加载现有文档

我们可以使用static load()方法加载现有的PDF文档。此方法接受文件对象作为参数。我们还可以使用PDFBox的类名PDDocument调用它。

File file = new File("PATH"); 
PDDocument doc = PDDocument.load(file); 

创建PDFMergerUtility类对象

实例化PDFMergeUtility类。此类包含合并PDF的例程。可以在以下代码中显示:

PDFMergerUtility PDFmerger = new PDFMergerUtility();

设定目的地

使用setDestinationFileName()方法设置目标文件的路径。可以在以下代码中显示:

PDFmerger.setDestinationFileName("Path/merged.pdf");

设置源文件

按照我们希望在最终合并的PDF文件中找到的顺序添加所有源PDF文件。 addSource()方法用于设置源文件,如下所示。

PDFmerger.addSource(SourceFileName);

合并PDF

添加所有要合并的源PDF文件。使用PDFmerger类的mergeDocuments()方法合并文档,可以在下面的代码中显示该文档。

PDFmerger.mergeDocuments(null);

关闭文件

完成任务后,我们需要使用close()方法关闭PDDocument类对象。

doc.close();

例-

在这里,我们获得了三个PDF文档文件,并将通过Java程序的PDFBox库将它们合并为一个PDF文件。



Java程序

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.multipdf.PDFMergerUtility;
import java.io.File; 
import java.io.IOException; 

public class MergePdfDocuments {
        public static void main(String[] args)throws IOException {
                
        //Loading an existing PDF document
          File file1 = new File("/eclipse-workspace/blank1.pdf");
          PDDocument document1 = PDDocument.load(file1); 
          File file2 = new File("/eclipse-workspace/blank2.pdf");
          PDDocument document2 = PDDocument.load(file2);  
          File file3 = new File("/eclipse-workspace/blank3.pdf");
          PDDocument document3 = PDDocument.load(file3); 
    
    //Create PDFMergerUtility class object
          PDFMergerUtility PDFmerger = new PDFMergerUtility();

    //Setting the destination file path
    PDFmerger.setDestinationFileName("/eclipse-workspace/merged.pdf");

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

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

     System.out.println("PDF Documents merged to a single file successfully");
    
//Close documents
    document1.close();
    document2.close();
    document3.close();
    }
}

输出:

成功执行上述程序后,以下消息将显示如下。

为了验证给定的路径,我们可以观察到已创建名称为merged.pdf的PDF文档。本文档包含提供的源文档文件的所有页面,如下所示。