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.