PDFBox - Aggiunta di rettangoli

Questo capitolo spiega come creare caselle di colore in una pagina di un documento PDF.

Creazione di caselle in un documento PDF

È possibile aggiungere caselle rettangolari in una pagina PDF utilizzando il file addRect() metodo del PDPageContentStream classe.

Di seguito sono riportati i passaggi per creare forme rettangolari in una pagina di un documento PDF.

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: ottenere l'oggetto della pagina

Devi recuperare il file PDPage oggetto della pagina richiesta in cui si desidera aggiungere rettangoli utilizzando il getPage() metodo del PDDocumentclasse. A questo metodo è necessario passare l'indice della pagina in cui si desidera aggiungere i rettangoli.

PDPage page = document.getPage(0);

Passaggio 3: preparazione del flusso di contenuti

È possibile inserire vari tipi di elementi di dati utilizzando l'oggetto della classe denominata PDPageContentStream. È necessario passare l'oggetto documento e l'oggetto pagina al costruttore di questa classe quindi, istanziare questa classe passando questi due oggetti creati nei passaggi precedenti come mostrato di seguito.

PDPageContentStream contentStream = new PDPageContentStream(document, page);

Passaggio 4: impostazione del colore non tracciabile

È possibile impostare il colore non tracciato sul rettangolo utilizzando il setNonStrokingColor() metodo della classe PDPageContentStream. A questo metodo, è necessario passare il colore richiesto come parametro come mostrato di seguito.

contentStream.setNonStrokingColor(Color.DARK_GRAY);

Passaggio 5: disegnare il rettangolo

Disegna il rettangolo con le dimensioni richieste usando il addRect()metodo. A questo metodo, è necessario passare le dimensioni del rettangolo da aggiungere come mostrato di seguito.

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

Passaggio 6: riempimento del rettangolo

Il fill() metodo del PDPageContentStream class riempie il percorso tra le dimensioni specificate con il colore richiesto come mostrato di seguito.

contentStream.fill();

Passaggio 7: chiusura del documento

Infine chiudere il documento utilizzando close() metodo del PDDocument classe come mostrato di seguito.

document.close();

Esempio

Supponiamo di avere un documento PDF denominato blankpage.pdf nel percorso C:\PdfBox_Examples\ e questo contiene una singola pagina vuota come mostrato di seguito.

Questo esempio mostra come creare / inserire rettangoli in un documento PDF. Qui creeremo una casella in un PDF vuoto. Salva questo codice comeAddRectangles.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();
   }
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac AddRectangles.java 
java AddRectangles

Al momento dell'esecuzione, il programma precedente crea un rettangolo in un documento PDF che mostra la seguente immagine.

Rectangle created

Se verifichi il percorso specificato e apri il documento salvato - colorbox.pdf, puoi osservare che al suo interno è inserita una casella come mostrato di seguito.