本章將演示如何在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文件,它包含一個空白頁面,如下所示。
這個例子演示了如何在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 ,顯示如下 -