PDFBox - Division d'un document PDF

Dans le chapitre précédent, nous avons vu comment ajouter du JavaScript à un document PDF. Apprenons maintenant à diviser un document PDF donné en plusieurs documents.

Division des pages dans un document PDF

Vous pouvez diviser le document PDF donné en plusieurs documents PDF à l'aide de la classe nommée Splitter. Cette classe est utilisée pour diviser le document PDF donné en plusieurs autres documents.

Voici les étapes pour diviser un document PDF existant

Étape 1: chargement d'un document PDF existant

Charger un document PDF existant en utilisant la méthode statique load() du PDDocumentclasse. Cette méthode accepte un objet fichier en tant que paramètre, puisqu'il s'agit d'une méthode statique, vous pouvez l'appeler en utilisant le nom de classe comme indiqué ci-dessous.

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

Étape 2: instancier la classe Splitter

La classe nommée Splitter contient les méthodes pour diviser le document PDF donné, donc instanciez cette classe comme indiqué ci-dessous.

Splitter splitter = new Splitter();

Étape 3: Diviser le document PDF

Vous pouvez diviser le document donné en utilisant le Split() méthode de la Splitterclasse cette classe. Cette méthode accepte un objet duPDDocument classe comme paramètre.

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

le split() La méthode divise chaque page du document donné en tant que document individuel et renvoie tous ceux-ci sous la forme d'une liste.

Étape 4: Création d'un objet Iterator

Pour parcourir la liste des documents, vous devez obtenir un objet itérateur de la liste acquise à l'étape ci-dessus, vous devez obtenir l'objet itérateur de la liste en utilisant le listIterator() méthode comme indiqué ci-dessous.

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

Étape 5: fermeture du document

Enfin, fermez le document en utilisant close() méthode de PDDocument classe comme indiqué ci-dessous.

document.close();

Exemple

Supposons qu'il existe un document PDF avec un nom sample.pdf Sur le chemin C:\PdfBox_Examples\ et ce document contient deux pages - une page contenant une image et une autre page contenant du texte comme indiqué ci-dessous.

Cet exemple montre comment diviser le document PDF mentionné ci-dessus. Ici, nous allons diviser le document PDF nommésample.pdf en deux documents différents sample1.pdf et sample2.pdf. Enregistrez ce code dans un fichier avec un nomSplitPages.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();
   }
}

Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes

javac SplitPages.java 
java SplitPages

Lors de l'exécution, le programme ci-dessus crypte le document PDF donné affichant le message suivant.

Multiple PDF’s created

Si vous vérifiez le chemin d'accès donné, vous pouvez observer que plusieurs PDF ont été créés avec des noms sample1 et sample2 comme indiqué ci-dessous.