PDFBox - Agregar rectángulos

Este capítulo le enseña cómo crear cuadros de color en una página de un documento PDF.

Creación de cuadros en un documento PDF

Puede agregar cuadros rectangulares en una página PDF utilizando el addRect() método del PDPageContentStream clase.

Los siguientes son los pasos para crear formas rectangulares en una página de un documento PDF.

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: obtener el objeto de página

Necesitas recuperar el PDPage objeto de la página requerida donde desea agregar rectángulos usando el getPage() método del PDDocumentclase. Para este método, debe pasar el índice de la página donde desea agregar rectángulos.

PDPage page = document.getPage(0);

Paso 3: preparación del flujo de contenido

Puede insertar varios tipos de elementos de datos utilizando el objeto de la clase denominada PDPageContentStream. Debe pasar el objeto del documento y el objeto de la página al constructor de esta clase, por lo tanto, cree una instancia de esta clase pasando estos dos objetos creados en los pasos anteriores como se muestra a continuación.

PDPageContentStream contentStream = new PDPageContentStream(document, page);

Paso 4: Configuración del color sin trazos

Puede establecer el color sin trazos en el rectángulo usando el setNonStrokingColor() método de la clase PDPageContentStream. Para este método, debe pasar el color requerido como parámetro como se muestra a continuación.

contentStream.setNonStrokingColor(Color.DARK_GRAY);

Paso 5: Dibujar el rectángulo

Dibuje el rectángulo con las dimensiones requeridas usando el addRect()método. Para este método, debe pasar las dimensiones del rectángulo que se agregará como se muestra a continuación.

contentStream.addRect(200, 650, 100, 100);

Paso 6: llenar el rectángulo

los fill() método del PDPageContentStream class llena la ruta entre las dimensiones especificadas con el color requerido como se muestra a continuación.

contentStream.fill();

Paso 7: cerrar el documento

Finalmente cierre el documento usando close() método del PDDocument clase como se muestra a continuación.

document.close();

Ejemplo

Supongamos que tenemos un documento PDF llamado blankpage.pdf en el camino C:\PdfBox_Examples\ y esto contiene una sola página en blanco como se muestra a continuación.

Este ejemplo demuestra cómo crear / insertar rectángulos en un documento PDF. Aquí, crearemos un cuadro en un PDF en blanco. Guarda este código comoAddRectangles.java.

import java.awt.Color;
import java.io.File;
  
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
public class ShowColorBoxes {

   public static void main(String args[]) throws Exception {

      //Loading an existing document
      File file = new File("C:/PdfBox_Examples/BlankPage.pdf");
      PDDocument document = PDDocument.load(file);
        
      //Retrieving a page of the PDF Document
      PDPage page = document.getPage(0);

      //Instantiating the PDPageContentStream class
      PDPageContentStream contentStream = new PDPageContentStream(document, page);
       
      //Setting the non stroking color
      contentStream.setNonStrokingColor(Color.DARK_GRAY);

      //Drawing a rectangle 
      contentStream.addRect(200, 650, 100, 100);

      //Drawing a rectangle
      contentStream.fill();

      System.out.println("rectangle added");

      //Closing the ContentStream object
      contentStream.close();

      //Saving the document
      File file1 = new File("C:/PdfBox_Examples/colorbox.pdf");
      document.save(file1);

      //Closing the document
      document.close();
   }
}

Compile y ejecute el archivo Java guardado desde el símbolo del sistema utilizando los siguientes comandos.

javac AddRectangles.java 
java AddRectangles

Tras la ejecución, el programa anterior crea un rectángulo en un documento PDF que muestra la siguiente imagen.

Rectangle created

Si verifica la ruta proporcionada y abre el documento guardado: colorbox.pdf, puede observar que se inserta una caja en él como se muestra a continuación.