PDFBox - Adicionando retângulos

Este capítulo ensina como criar caixas de cores em uma página de um documento PDF.

Criação de caixas em um documento PDF

Você pode adicionar caixas retangulares em uma página PDF usando o addRect() método do PDPageContentStream classe.

A seguir estão as etapas para criar formas retangulares em uma página de um documento PDF.

Etapa 1: Carregando um documento PDF existente

Carregue um documento PDF existente usando o método estático load() do PDDocumentclasse. Este método aceita um objeto de arquivo como parâmetro, uma vez que é um método estático, você pode invocá-lo usando o nome da classe conforme mostrado abaixo.

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

Etapa 2: Obtendo o objeto da página

Você precisa recuperar o PDPage objeto da página necessária onde você deseja adicionar retângulos usando o getPage() método do PDDocumentclasse. Para este método você precisa passar o índice da página onde deseja adicionar retângulos.

PDPage page = document.getPage(0);

Etapa 3: preparação do fluxo de conteúdo

Você pode inserir vários tipos de elementos de dados usando o objeto da classe chamada PDPageContentStream. Você precisa passar o objeto de documento e o objeto de página para o construtor desta classe, portanto, instancie essa classe passando esses dois objetos criados nas etapas anteriores, conforme mostrado abaixo.

PDPageContentStream contentStream = new PDPageContentStream(document, page);

Etapa 4: Definir a cor sem traços

Você pode definir a cor sem traço para o retângulo usando o setNonStrokingColor() método da aula PDPageContentStream. Para este método, você precisa passar a cor desejada como parâmetro conforme mostrado abaixo.

contentStream.setNonStrokingColor(Color.DARK_GRAY);

Etapa 5: Desenhar o retângulo

Desenhe o retângulo com as dimensões necessárias usando o addRect()método. Para este método, você precisa passar as dimensões do retângulo a ser adicionado conforme mostrado abaixo.

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

Etapa 6: Preenchendo o retângulo

o fill() método do PDPageContentStream classe preenche o caminho entre as dimensões especificadas com a cor necessária, conforme mostrado abaixo.

contentStream.fill();

Etapa 7: Fechando o Documento

Finalmente feche o documento usando close() método do PDDocument classe como mostrado abaixo.

document.close();

Exemplo

Suponha que temos um documento PDF chamado blankpage.pdf no caminho C:\PdfBox_Examples\ e contém uma única página em branco, conforme mostrado abaixo.

Este exemplo demonstra como criar / inserir retângulos em um documento PDF. Aqui, criaremos uma caixa em um PDF em branco. Salve 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 e execute o arquivo Java salvo no prompt de comando usando os comandos a seguir.

javac AddRectangles.java 
java AddRectangles

Após a execução, o programa acima cria um retângulo em um documento PDF exibindo a imagem a seguir.

Rectangle created

Se você verificar o caminho fornecido e abrir o documento salvo - colorbox.pdf, você pode observar que uma caixa está inserida nele conforme mostrado abaixo.