Pdfbox 简明教程

PDFBox - Adding Rectangles

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

Creating Boxes in a PDF Document

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

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

Step 1: Loading an Existing PDF Document

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

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

Step 2: Getting the Page Object

您需要使用 PDDocument 类的 getPage() 方法检索您想在其中添加矩形的所需页面的 PDPage 对象。对该方法,您需要传递您想在其中添加矩形的页面的索引。

PDPage page = document.getPage(0);

Step 3: Preparing the Content Stream

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

PDPageContentStream contentStream = new PDPageContentStream(document, page);

Step 4: Setting the Non-stroking Color

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

contentStream.setNonStrokingColor(Color.DARK_GRAY);

Step 5: Drawing the rectangle

使用 addRect() 方法绘制所需尺寸的矩形。对该方法,您需要传递待添加的矩形的尺寸,如下所示。

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

Step 6: Filling the Rectangle

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

contentStream.fill();

Step 7: Closing the Document

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

document.close();

Example

假设我们在路径 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 {

      //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