在上一章中,无涯教程已经看到了如何将给定的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 { //加载现有的PDF文档 File file1 = new File("C:/PdfBox_Examples/sample1.pdf"); PDDocument doc1 = PDDocument.load(file1); File file2 = new File("C:/PdfBox_Examples/sample2.pdf"); PDDocument doc2 = PDDocument.load(file2); //实例化PDFmergerutility类 PDFMergerUtility PDFmerger = new PDFMergerUtility(); //设置目标文件 PDFmerger.setDestinationFileName("C:/PdfBox_Examples/merged.pdf"); //添加源文件 PDFmerger.addSource(file1); PDFmerger.addSource(file2); //合并两份文件 PDFmerger.mergeDocuments(); System.out.println("Documents merged"); //关闭文件 doc1.close(); doc2.close(); } }
使用以下命令从命令提示符处编译并执行保存的Java文件。
javac MergePDFs.java java MergePDFs
执行后,上述程序会加密显示以下消息的给定PDF文档。
Documents merged
如果您验证给定的路径,则可以看到已创建名称为 merged.pdf 的PDF文档,该文档包含两个源文档的页面,如下所示。
参考链接
https://www.learnfk.com/pdfbox/pdfbox-merging-multiple-pdf-documents.html
标签:PDFmerger,合并,无涯,Merge,文档,PDDocument,PDF,pdf From: https://blog.51cto.com/u_14033984/9333935