📜  PDFBox添加矩形

📅  最后修改于: 2021-01-07 07:46:44             🧑  作者: Mango

PDFBox添加矩形

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

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

加载现有的PDF文档

我们可以使用static 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坐标
  • 宽度-矩形的宽度。
  • 高度-矩形的高度。

填充矩形

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

contentStream.fill();

关闭文件

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

doc.close();

例-

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

Java程序

import java.io.File;
import java.io.IOException;
import java.awt.Color;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;

public class AddingPage {
    
    public static void main(String[] args)throws IOException {
                
        //Loading an existing document 
          File file = new File("/eclipse-workspace/blank.pdf");
          PDDocument doc = PDDocument.load(file);
    
    //Retrieving a page of the PDF Document
          PDPage page = doc.getPage(2);

    //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("eclipse-workspace/RectangleShape.pdf");
    doc.save(file1);
    
    //Closing the document
    doc.close();
    }
}

输出:

成功执行后,以上程序显示以下输出。

现在进行验证,打开名为Rectangleshape的PDF文档,如下所示-