PDFBox - Adding Rectangles

本章教您如何在PDF文档的页面中创建颜色框.

在PDF文档中创建框

您可以使用 PDPageContentStream 类的 addRect()方法在PDF页面中添加矩形框.

以下是创建矩形的步骤PDF文档页面中的形状.

步骤1:加载现有PDF文档

使用静态方法加载现有PDF文档 PDDocument 类的load().此方法接受文件对象作为参数,因为这是一个静态方法,您可以使用类名调用它,如下所示.

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

第2步:获取页面对象

您需要检索 PDPage 对象使用 PDDocument 类的 getPage()方法添加矩形所需页面的位置.对于此方法,您需要传递要添加矩形的页面的索引.

PDPage page = document.getPage(0);

第3步:准备内容流

您可以使用类的对象插入各种数据元素命名为 PDPageContentStream .您需要将文档对象和页面对象传递给此类的构造函数,因此,通过传递前面步骤中创建的这两个对象来实例化此类,如下所示.

PDPageContentStream contentStream = new PDPageContentStream(document, page);

步骤4:设置非描边颜色

您可以使用非描边颜色设置为矩形类 PDPageContentStream setNonStrokingColor()方法.对于此方法,您需要将所需颜色作为参数传递,如下所示.

contentStream.setNonStrokingColor(Color.DARK_GRAY);

步骤5:绘制矩形

使用 addRect()

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

第6步:填充矩形

fill()方法 PDPageContentStream 类使用所需颜色填充指定尺寸之间的路径,如下所示.

contentStream.fill();

步骤7:关闭文档

最后使用关闭()关闭文档 PDDocument 类的方法如下所示.

document.close();

示例

假设路径中有一个名为 blankpage.pdf 的PDF文档 C:\ PdfBox_Examples \ 这包含一个空白页面,如下所示.

Blankpage

此示例演示如何在PDF文档中创建/插入矩形.在这里,我们将在空白PDF中创建一个框.将此代码保存为 AddRectangles.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();
   }
}

使用以下命令从命令提示符编译并执行保存的Java文件.

javac AddRectangles.java 
java AddRectangles

执行时,上述程序创建PDF文档中的矩形,显示以下图像.

Rectangle created

如果您验证了给定路径并打开了保存的文档 -   colorbox.pdf ,您可以观察到其中插入了一个框,如下所示.

Coloredbox