PDFBox 添加矩形

使用 PDFBox 库,我们可以在 PDF 页面中添加矩形形状。该PDFBOX库提供了一个 PDPageContentStream类的addRect() 方法可以在PDF页面中添加矩形。

要在 PDF 文档中添加矩形形状,请执行以下操作:

加载现有的 PDF 文档

我们可以使用静态load()方法加载现有的 PDF 文档。此方法接受一个文件对象作为参数。我们还可以使用PDFBox的类名PDDocument调用它。

File file = new File("Path of Document");   
PDDocument doc = PDDocument.load(file);   

检索页面

在这里,我们必须选择一个要插入矩形的页面。该getPage()方法用于检索PDF文档的页面。这个方法需要一个页码作为我们要检索的那个页面的参数。这可以在以下代码中显示。

PDPage page = doc.getPage(PageIndex);  

准备内容流

PDPageContentStream类用于创建用于插入各种数据元素的对象。此类的构造函数包含文档对象和页面对象作为参数。这可以在以下代码中显示。

PDPageContentStream contents = new PDPageContentStream(doc, page);  

设置颜色

我们可以使用PDPageContentStream 类的setNonStrokingColor()方法将颜色设置为矩形。此方法需要传递所需的颜色作为参数。这可以在以下代码中显示。

contentStream.setNonStrokingColor(Color.RED);  

添加矩形

addRect() 方法被用于绘制与所需尺寸的矩形形状。此方法需要将矩形的尺寸作为参数传递。这可以在以下代码中显示。

contentStream.addRect(250, 250, 150, 150);  

addRect()方法接受以下参数:

  • X:矩形的 x 坐标
  • Y : 矩形的 y 坐标
  • Width:矩形的宽度。
  • Height: 矩形的高度。

填充矩形

PDPageContentStream类的fill()方法用所需的颜色填充指定维度之间的路径。这可以在以下代码中显示。

contentStream.fill();  

关闭文档

完成任务后,我们需要使用close()方法关闭PDDocument类对象。

doc.close();  

PDFBox 添加矩形 完整示例

这是一个空白的 PDF 文档。在本文档中,我们将使用 Java 程序的 PDFBox 库添加矩形。

代码如下:

package com.yiidian;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;

import java.awt.*;
import java.io.File;
import java.io.IOException;

public class AddingPage {

    public static void main(String[] args) throws IOException {

        //Loading an existing document   
        File file = new File("d:/blank.pdf");
        PDDocument doc = PDDocument.load(file);

        //Retrieving a page of the PDF Document
        PDPage page = doc.getPage(0);

        //Instantiating the PDPageContentStream class
        PDPageContentStream contentStream = new PDPageContentStream(doc, page);

        //Setting the non stroking color
        contentStream.setNonStrokingColor(Color.RED);

        //Drawing a rectangle
        contentStream.addRect(250, 250, 150, 150);

        //Drawing a rectangle
        contentStream.fill();

        System.out.println("Rectangle added successfully in a PDF document.");

        //Closing the ContentStream object
        contentStream.close();

        //Saving the document
        File file1 = new File("d:/RectangleShape.pdf");
        doc.save(file1);

        //Closing the document
        doc.close();
    }
}  

输出结果如下:

热门文章

优秀文章