PDFBox - 添加矩形

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

在 PDF 文档中创建框

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

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

步骤 1:加载现有 PDF 文档

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

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

步骤 2:获取页面对象

您需要使用 PDDocument 类的 getPage() 方法检索要添加矩形的所需页面的 PDPage 对象。您需要将要添加矩形的页面的索引传递给此方法。

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:填充矩形

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

contentStream.fill();

步骤 7:关闭文档

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

document.close();

示例

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

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 {

        //加载现有文档
        File file = new File("C:/PdfBox_Examples/BlankPage.pdf");
        PDDocument document = PDDocument.load(file);
        
        //检索 PDF 文档的页面
        PDPage page = document.getPage(0);
        
        //实例化 PDPageContentStream 类
        PDPageContentStream contentStream = new PDPageContentStream(document, page);
        
        //设置非描边颜色
        contentStream.setNonStrokingColor(Color.DARK_GRAY);
        
        //绘制矩形
        contentStream.addRect(200, 650, 100, 100);
        
        //绘制矩形
        contentStream.fill();
        
        System.out.println("rectangle Added");
        
        //关闭 ContentStream 对象
        contentStream.close();
        
        //保存文档
        File file1 = new File("C:/PdfBox_Examples/colorbox.pdf");
        document.save(file1);
        
        //关闭文档
        document.close();
   }
}

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

javac AddRectangles.java
java AddRectangles

执行后,上述程序会在 PDF 文档中创建一个矩形,显示以下图像。

Rectangle created

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

Coloredbox