PDFBox - Ajout de rectangles

Ce chapitre vous apprend à créer des cases de couleur dans une page d'un document PDF.

Création de boîtes dans un document PDF

Vous pouvez ajouter des boîtes rectangulaires dans une page PDF à l'aide de addRect() méthode de la PDPageContentStream classe.

Voici les étapes pour créer des formes rectangulaires dans une page d'un document PDF.

Étape 1: chargement d'un document PDF existant

Charger un document PDF existant en utilisant la méthode statique load() du PDDocumentclasse. Cette méthode accepte un objet fichier en tant que paramètre, puisqu'il s'agit d'une méthode statique, vous pouvez l'appeler en utilisant le nom de classe comme indiqué ci-dessous.

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

Étape 2: Obtention de l'objet Page

Vous devez récupérer le PDPage objet de la page souhaitée où vous souhaitez ajouter des rectangles à l'aide du getPage() méthode de la PDDocumentclasse. Pour cette méthode, vous devez passer l'index de la page où vous souhaitez ajouter des rectangles.

PDPage page = document.getPage(0);

Étape 3: Préparation du flux de contenu

Vous pouvez insérer différents types d'éléments de données à l'aide de l'objet de la classe nommée PDPageContentStream. Vous devez passer l'objet document et l'objet page au constructeur de cette classe, par conséquent, instancier cette classe en transmettant ces deux objets créés dans les étapes précédentes comme indiqué ci-dessous.

PDPageContentStream contentStream = new PDPageContentStream(document, page);

Étape 4: Définition de la couleur sans contour

Vous pouvez définir la couleur sans contour du rectangle à l'aide de la touche setNonStrokingColor() méthode de la classe PDPageContentStream. Pour cette méthode, vous devez passer la couleur requise comme paramètre comme indiqué ci-dessous.

contentStream.setNonStrokingColor(Color.DARK_GRAY);

Étape 5: Dessiner le rectangle

Dessinez le rectangle avec les dimensions requises à l'aide du addRect()méthode. Pour cette méthode, vous devez transmettre les dimensions du rectangle à ajouter comme indiqué ci-dessous.

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

Étape 6: Remplir le rectangle

le fill() méthode de la PDPageContentStream class remplit le chemin entre les dimensions spécifiées avec la couleur requise comme indiqué ci-dessous.

contentStream.fill();

Étape 7: fermeture du document

Fermez enfin le document en utilisant close() méthode de la PDDocument classe comme indiqué ci-dessous.

document.close();

Exemple

Supposons que nous ayons un document PDF nommé blankpage.pdf Sur le chemin C:\PdfBox_Examples\ et cela contient une seule page vierge comme indiqué ci-dessous.

Cet exemple montre comment créer / insérer des rectangles dans un document PDF. Ici, nous allons créer une boîte dans un PDF vierge. Enregistrez ce code sousAddRectangles.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();
   }
}

Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac AddRectangles.java 
java AddRectangles

Lors de l'exécution, le programme ci-dessus crée un rectangle dans un document PDF affichant l'image suivante.

Rectangle created

Si vous vérifiez le chemin indiqué et ouvrez le document enregistré - colorbox.pdf, vous pouvez observer qu'une boîte y est insérée comme indiqué ci-dessous.