📜  PDFBox拆分PDF文档

📅  最后修改于: 2021-01-07 07:47:39             🧑  作者: Mango

PDFBox分割PDF文件

我们可以将给定的PDF文档拆分为多个PDF文件。 Splitter类可以将每个PDF文件拆分为一个单独的文件。此类用于将给定的PDF文档拆分为其他几个单独的文档。

分割现有的PDF文件,请执行以下操作-

加载现有文档

我们可以使用static load()方法加载现有的PDF文档。此方法接受文件对象作为参数。我们还可以使用PDFBox的类名PDDocument调用它。

File file = new File("PATH"); 
PDDocument doc = PDDocument.load(file); 

创建拆分器对象

splitter类用于拆分现有的PDF文档。我们可以如下实例化splitter类。

Splitter splitter = new Splitter();

分割PDF文件

我们可以使用splitter的split()方法来拆分现有的PDF文档。 split()方法接受PDDocument类的对象作为参数。

ListPages = splitter.split(document);

创建迭代器对象

listIterator()方法可用于获取迭代器对象。该迭代器对象用于遍历我们需要的文档列表。以下代码创建迭代器对象。

Iteratoriterator = Pages.listIterator();

关闭文件

完成任务后,我们需要使用close()方法关闭PDDocument类对象。

doc.close();

例-

这是一个PDF文档,包含五页。前两页包含图像。我们将拆分两个页面,这些页面通过Java程序将图像作为单个文件包含。

Java程序

import org.apache.pdfbox.multipdf.Splitter; 
import org.apache.pdfbox.pdmodel.PDDocument;
import java.io.File; 
import java.io.IOException; 
import java.util.List; 
import java.util.Iterator;

public class SplitsPdfDemo {
    
    public static void main(String[] args)throws IOException {
                
        //Loading an existing PDF document
          File file = new File("//eclipse-workspace/blanck.pdf");
          PDDocument document = PDDocument.load(file); 

    // Create a Splitter object
          Splitter splitter = new Splitter();

    //splitting the pages of a PDF document
          ListPages = splitter.split(document);

    //Creating an iterator object
          Iteratoriterator = Pages.listIterator();

    //saving splits as individual PDF document
    inti = 1;
    while(iterator.hasNext()) {
             PDDocument pd = iterator.next();
    pd.save("/eclipse-workspace/blanck"+ i++ +".pdf");
          }
          System.out.println("Multiple PDF files are created successfully.");
    document.close();
    }
}

输出:

成功执行以上程序后,我们可以看到以下输出。

现在进行验证,分别打开PDF文件,如下所示-