PDFBox - División de un documento PDF
En el capítulo anterior, hemos visto cómo agregar JavaScript a un documento PDF. Aprendamos ahora a dividir un documento PDF dado en varios documentos.
División de páginas en un documento PDF
Puede dividir el documento PDF dado en varios documentos PDF utilizando la clase denominada Splitter. Esta clase se utiliza para dividir el documento PDF dado en varios otros documentos.
Los siguientes son los pasos para dividir un documento PDF existente
Paso 1: carga de un documento PDF existente
Cargue un documento PDF existente utilizando el método estático load() del PDDocumentclase. Este método acepta un objeto de archivo como parámetro, ya que este es un método estático, puede invocarlo usando el nombre de clase como se muestra a continuación.
File file = new File("path of the document")
PDDocument document = PDDocument.load(file);
Paso 2: crear una instancia de la clase Splitter
La clase nombrada Splitter contiene los métodos para dividir el documento PDF dado, por lo tanto, cree una instancia de esta clase como se muestra a continuación.
Splitter splitter = new Splitter();
Paso 3: dividir el documento PDF
Puede dividir el documento dado usando el Split() método del Splitterclasifica esta clase. Este método acepta un objeto delPDDocument class como parámetro.
List<PDDocument> Pages = splitter.split(document);
los split() El método divide cada página del documento dado como un documento individual y los devuelve en forma de lista.
Paso 4: creación de un objeto iterador
Para recorrer la lista de documentos, necesita obtener un objeto iterador de la lista adquirida en el paso anterior, debe obtener el objeto iterador de la lista usando el listIterator() método como se muestra a continuación.
Iterator<PDDocument> iterator = Pages.listIterator();
Paso 5: cerrar el documento
Finalmente, cierre el documento usando close() método de PDDocument clase como se muestra a continuación.
document.close();
Ejemplo
Supongamos que hay un documento PDF con nombre sample.pdf en el camino C:\PdfBox_Examples\ y este documento contiene dos páginas: una página que contiene una imagen y otra que contiene texto, como se muestra a continuación.
Este ejemplo demuestra cómo dividir el documento PDF mencionado anteriormente. Aquí, dividiremos el documento PDF llamadosample.pdf en dos documentos diferentes sample1.pdf y sample2.pdf. Guarde este código en un archivo con nombreSplitPages.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();
}
}
Compile y ejecute el archivo Java guardado desde el símbolo del sistema usando los siguientes comandos
javac SplitPages.java
java SplitPages
Tras la ejecución, el programa anterior cifra el documento PDF dado que muestra el siguiente mensaje.
Multiple PDF’s created
Si verifica la ruta proporcionada, puede observar que se crearon varios PDF con nombres sample1 y sample2 Como se muestra abajo.