用Java分割和合并PDF文件

随着近来PDF文件格式在商业中的日益流行,办公室工作人员经常接触PDF文档,并且也可能需要处理PDF。 例如,将包含多个发票的PDF拆分为单独的文件,或将多个报告合并为一个PDF。

本文将介绍如何使用Java的Spire.PDF拆分大PDF并合并多个PDF。 以下各节中有三段代码,说明了从以下三个方面进行的拆分和合并。

  • 将PDF拆分为多个单页PDF按页面范围将PDF拆分为多个文件将多个PDF合并到一个文档中

Before you can compile the code snippets below, download Spire.PDF for Java and import the Spire.Pdf.jar and Spire.Common.jar into your project.

Split PDF to Single-Page PDFs

Spire提供了一种非常简单的方法-拆分,将多页PDF文档分为多个基于单页的PDF文档。 只需将源PDF文件加载到PdfDocument对象,然后调用split方法进行分割。

//specify input file path and output directory
String inputFile= "C:/Users/Administrator/Desktop/test.pdf";
String outputDirectory = "C:/Users/Administrator/Desktop/Output/";

//create a PdfDocument instance
PdfDocument doc = new PdfDocument();

//load a PDF file
doc.loadFromFile(inputFile);

//split PDF to single-page PDFs
doc.split(outputDirectory + "output-{0}.pdf",1);

Split PDF by Page Ranges

例如,如果您希望用选定的页码分割PDF,则第一页变成一个文档,其余页面变成另一个文档,那么您需要创建两个新的PDF文档并插入选定的页面 从源文档到新文档。 以下代码段对此进行了演示。

//specify input file path and output directory
String inputFile= "C:/Users/Administrator/Desktop/test.pdf";
String outputDirectory = "C:/Users/Administrator/Desktop/Output/";

//create a PdfDocument instance
PdfDocument sourceDoc = new PdfDocument();

//load a source PDF file
sourceDoc.loadFromFile(inputFile);

//create two extra PdfDocument objects
PdfDocument newDoc_1 = new PdfDocument();
PdfDocument newDoc_2 = new PdfDocument();

//insert the first page from source file to the new PDF document
newDoc_1.insertPage(sourceDoc, 0);

//insert the rest pages from source file to the second new PDF document
newDoc_2.insertPageRange(sourceDoc,1,sourceDoc.getPages().getCount()-1);

//save the new PDF documents
newDoc_1.saveToFile(outputDirectory + "output-1.pdf");
newDoc_2.saveToFile(outputDirectory + "output-2.pdf");

Merge PDFs

为了完成此任务,Spire提供了另一个易于使用的方法,称为mergeFiles。 只需获取输入文件路径并将其存储在String数组中,然后将其作为一个参数传递给mergeFiles方法,然后将返回的对象另存为新的PDF文件。

//get the paths of the files that you want to merge
String[] filePaths = new String[]{
        "C:/Users/Administrator/Desktop/Source/input-1.pdf",
        "C:/Users/Administrator/Desktop/Source/input-2.pdf",
        "C:/Users/Administrator/Desktop/Source/input-3.pdf"
};

//specify output directory
String outputDirectory = "C:/Users/Administrator/Desktop/Output/";

//merge PDF files using mergeFiles method
PdfDocumentBase newDoc = PdfDocument.mergeFiles(filePaths);

//save the new PDF document
newDoc.save(outputDirectory + "Merged.pdf");

from: https://dev.to//eiceblue/split-and-merge-pdf-files-in-java-k5e

你可能感兴趣的:(java)