Учебники

PDFBox — Разделение PDF-документа

В предыдущей главе мы увидели, как добавить JavaScript в документ PDF. Давайте теперь узнаем, как разделить данный документ PDF на несколько документов.

Разделение страниц в документе PDF

Вы можете разделить данный PDF-документ на несколько PDF-документов, используя класс с именем Splitter. Этот класс используется для разделения данного документа PDF на несколько других документов.

Ниже приведены шаги для разделения существующего документа PDF.

Шаг 1. Загрузка существующего PDF-документа

Загрузите существующий документ PDF, используя статический метод load () класса PDDocument . Этот метод принимает объект файла в качестве параметра, поскольку это статический метод, который можно вызвать, используя имя класса, как показано ниже.

File file = new File("path of the document") 
PDDocument document = PDDocument.load(file);

Шаг 2: Создание класса Splitter

Класс с именем Splitter содержит методы для разделения данного документа PDF, поэтому создайте экземпляр этого класса, как показано ниже.

Splitter splitter = new Splitter();

Шаг 3: Разделение PDF-документа

Вы можете разделить данный документ, используя метод Split () класса Splitter этого класса. Этот метод принимает объект класса PDDocument в качестве параметра.

List<PDDocument> Pages = splitter.split(document);

Метод split () разделяет каждую страницу данного документа как отдельный документ и возвращает их в виде списка.

Шаг 4: Создание объекта Iterator

Чтобы просмотреть список документов, вам нужно получить объект итератора списка, полученного на предыдущем шаге, вам нужно получить объект итератора списка с помощью метода listIterator (), как показано ниже.

Iterator<PDDocument> iterator = Pages.listIterator();

Шаг 5: Закрытие документа

Наконец, закройте документ, используя метод close () класса PDDocument, как показано ниже.

document.close();

пример

Предположим, есть PDF-документ с именем sample.pdf по пути C: \ PdfBox_Examples \, и этот документ содержит две страницы — одну страницу с изображением и другую страницу с текстом, как показано ниже.

Разделить страницу

Этот пример демонстрирует, как разделить вышеупомянутый документ PDF. Здесь мы разделим документ PDF с именем sample.pdf на два разных документа sample1.pdf и sample2.pdf . Сохраните этот код в файле с именем SplitPages.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 SplitPages {
   public static void main(String[] args) throws IOException {

      //Loading an existing PDF document
      File file = new File("C:/PdfBox_Examples/sample.pdf");
      PDDocument document = PDDocument.load(file); 

      //Instantiating Splitter class
      Splitter splitter = new Splitter();

      //splitting the pages of a PDF document
      List<PDDocument> Pages = splitter.split(document);

      //Creating an iterator 
      Iterator<PDDocument> iterator = Pages.listIterator();

      //Saving each page as an individual document
      int i = 1;
      while(iterator.hasNext()) {
         PDDocument pd = iterator.next();
         pd.save("C:/PdfBox_Examples/sample"+ i++ +".pdf");
      }
      System.out.println("Multiple PDF’s created");
      document.close();
   }
}

Скомпилируйте и выполните сохраненный файл Java из командной строки, используя следующие команды

javac SplitPages.java 
java SplitPages

После выполнения вышеуказанная программа шифрует данный PDF-документ, отображая следующее сообщение.

Multiple PDF’s created

Если вы проверите указанный путь, вы увидите, что было создано несколько файлов PDF с именами sample1 и sample2, как показано ниже.