本文概述
我们可以将多个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文档。本文档包含提供的源文档文件的所有页面, 如下所示。
评论前必须登录!
注册