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.