PDFBox添加矩形

本章將演示如何在PDF文檔的頁面中創建顏色框。

在PDF文檔中創建框

使用PDPageContentStream類的addRect()方法在PDF頁面中添加矩形框。

以下是在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();

 示例

假設在目錄:F:\worksp\pdfbox 中有一個名稱爲:blank-doc.pdf 的PDF文檔,它包含一個空白頁面,如下所示。
PDFBox添加矩形

這個例子演示瞭如何在PDF文檔中創建/插入矩形。 在這裏,將在空白PDF中創建一個框。 將此代碼保存爲AddRectangles.java

package com.yiibai;

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("F:/worksp/pdfbox/bank_doc.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("F:/worksp/pdfbox/colorbox.pdf");
      document.save(file1);

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

執行上面示例代碼,得到以下結果 -

Rectangle created

打開生成的文件:colorbox.pdf ,顯示如下 -
PDFBox添加矩形