无涯教程-PDFBox - PDF合并(Merge)

378 阅读2分钟

在上一章中,无涯教程已经看到了如何将给定的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,如下所示。

Image File.jpgContent File.jpg

本示例演示了如何合并以上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文档,该文档包含两个源文档的页面,如下所示。

Merged

参考链接

www.learnfk.com/pdfbox/pdfb…