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 文档,其中包含一个空白页,如下所示。

此示例演示如何在 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,您可以观察到其中插入了一个框,如下所示。
