在上一章中,无涯教程已经看到了如何将给定的PDF文档拆分为多个文档。现在学习如何将多个PDF文档合并为一个文档。
合并多个PDF文档
您可以使用名为 PDFMergerUtility 的类将多个PDF文档合并为一个PDF文档,该类提供了将两个或多个PDF文档合并为一个PDF文档的方法。
以下是合并多个PDF文档的步骤。
步骤1 - 加载现有文档
使用 PDDocument 类的静态方法 load()加载现有的PDF文档。该方法接受文件对象作为参数,因为这是一个静态方法,因此您可以使用类名调用它,如下所示。
File file=new File("path of the document") PDDocument document=PDDocument.load(file);
步骤2 - 实例化合并类
实例化合并实用程序类,如下所示。
PDFMergerUtility PDFmerger=new PDFMergerUtility();
步骤3 - 设置目标文件
如下所示,使用 setDestinationFileName()方法设置目标文件。
PDFmerger.setDestinationFileName("C:/PdfBox_Examples/data1/merged.pdf");
步骤4 - 设置源文件
如下所示,使用 addSource()方法设置源文件。
PDFmerger.addSource(file1);
步骤5 - 合并文档
使用 PDFmerger 类的 mergeDocuments()方法合并文档,如下所示。
PDFmerger.mergeDocuments();
步骤6 - 关闭文档
最后,使用 PDDocument 类的 close()方法关闭文档,如下所示。
document.close();
完整示例
假设无涯教程在路径C:\ PdfBox_Examples\中有两个PDF文档-sample1.pdf和sample2.pdf,如下所示。


本示例演示了如何合并以上PDF文档。在这里,无涯教程将名为 sample1.pdf 和 sample2.pdf 的PDF文档合并为一个单独的PDF文档 merged.pdf 。将此代码保存在名为 MergePDFs.java。的文件中。
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 {
</span><span class="com">//加载现有的PDF文档</span><span class="pln">
</span><span class="typ">File</span><span class="pln"> file1 </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">File</span><span class="pun">(</span><span class="str">"C:/PdfBox_Examples/sample1.pdf"</span><span class="pun">);</span><span class="pln">
</span><span class="typ">PDDocument</span><span class="pln"> doc1 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">PDDocument</span><span class="pun">.</span><span class="pln">load</span><span class="pun">(</span><span class="pln">file1</span><span class="pun">);</span><span class="pln">
</span><span class="typ">File</span><span class="pln"> file2 </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">File</span><span class="pun">(</span><span class="str">"C:/PdfBox_Examples/sample2.pdf"</span><span class="pun">);</span><span class="pln">
</span><span class="typ">PDDocument</span><span class="pln"> doc2 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">PDDocument</span><span class="pun">.</span><span class="pln">load</span><span class="pun">(</span><span class="pln">file2</span><span class="pun">);</span><span class="pln">
</span><span class="com">//实例化PDFmergerutility类</span><span class="pln">
</span><span class="typ">PDFMergerUtility</span><span class="pln"> </span><span class="typ">PDFmerger</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">PDFMergerUtility</span><span class="pun">();</span><span class="pln">
</span><span class="com">//设置目标文件</span><span class="pln">
</span><span class="typ">PDFmerger</span><span class="pun">.</span><span class="pln">setDestinationFileName</span><span class="pun">(</span><span class="str">"C:/PdfBox_Examples/merged.pdf"</span><span class="pun">);</span><span class="pln">
</span><span class="com">//添加源文件</span><span class="pln">
</span><span class="typ">PDFmerger</span><span class="pun">.</span><span class="pln">addSource</span><span class="pun">(</span><span class="pln">file1</span><span class="pun">);</span><span class="pln">
</span><span class="typ">PDFmerger</span><span class="pun">.</span><span class="pln">addSource</span><span class="pun">(</span><span class="pln">file2</span><span class="pun">);</span><span class="pln">
</span><span class="com">//合并两份文件</span><span class="pln">
</span><span class="typ">PDFmerger</span><span class="pun">.</span><span class="pln">mergeDocuments</span><span class="pun">();</span><span class="pln">
</span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Documents merged"</span><span class="pun">);</span><span class="pln">
</span><span class="com">//关闭文件</span><span class="pln">
doc1</span><span class="pun">.</span><span class="pln">close</span><span class="pun">();</span><span class="pln">
doc2</span><span class="pun">.</span><span class="pln">close</span><span class="pun">();</span><span class="pln">
}
}
使用以下命令从命令提示符处编译并执行保存的Java文件。
javac MergePDFs.java java MergePDFs
执行后,上述程序会加密显示以下消息的给定PDF文档。
Documents merged
如果您验证给定的路径,则可以看到已创建名称为 merged.pdf 的PDF文档,该文档包含两个源文档的页面,如下所示。