PDFBox - Divisione di un documento PDF

Nel capitolo precedente, abbiamo visto come aggiungere JavaScript a un documento PDF. Impariamo ora come dividere un determinato documento PDF in più documenti.

Divisione delle pagine in un documento PDF

È possibile dividere il documento PDF fornito in più documenti PDF utilizzando la classe denominata Splitter. Questa classe viene utilizzata per dividere il documento PDF dato in molti altri documenti.

Di seguito sono riportati i passaggi per dividere un documento PDF esistente

Passaggio 1: caricamento di un documento PDF esistente

Carica un documento PDF esistente utilizzando il metodo statico load() del PDDocumentclasse. Questo metodo accetta un oggetto file come parametro, poiché si tratta di un metodo statico, è possibile richiamarlo utilizzando il nome della classe come mostrato di seguito.

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

Passaggio 2: creare un'istanza della classe Splitter

La classe denominata Splitter contiene i metodi per dividere il documento PDF dato quindi, istanziare questa classe come mostrato di seguito.

Splitter splitter = new Splitter();

Passaggio 3: divisione del documento PDF

Puoi dividere il documento dato usando il Split() metodo del Splitterclassificare questa classe. Questo metodo accetta un oggetto diPDDocument classe come parametro.

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

Il split() Il metodo divide ogni pagina del documento dato come un documento individuale e li restituisce sotto forma di un elenco.

Passaggio 4: creazione di un oggetto Iterator

Per attraversare l'elenco dei documenti è necessario ottenere un oggetto iteratore della lista acquisita nel passaggio precedente, è necessario ottenere l'oggetto iteratore della lista utilizzando il listIterator() metodo come mostrato di seguito.

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

Passaggio 5: chiusura del documento

Infine, chiudi il documento usando close() metodo di PDDocument classe come mostrato di seguito.

document.close();

Esempio

Supponiamo che ci sia un documento PDF con il nome sample.pdf nel percorso C:\PdfBox_Examples\ e questo documento contiene due pagine: una pagina contenente un'immagine e un'altra pagina contenente testo come mostrato di seguito.

Questo esempio mostra come dividere il documento PDF sopra menzionato. Qui, divideremo il documento PDF denominatosample.pdf in due documenti diversi sample1.pdf e sample2.pdf. Salva questo codice in un file con nomeSplitPages.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();
   }
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi

javac SplitPages.java 
java SplitPages

Al momento dell'esecuzione, il programma di cui sopra crittografa il documento PDF fornito visualizzando il seguente messaggio.

Multiple PDF’s created

Se verifichi il percorso specificato, puoi osservare che sono stati creati più PDF con nomi sample1 e sample2 come mostrato di seguito.