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.