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();
}
}
输出结果如下:
热门文章
优秀文章