PDFBox - Thêm hình chữ nhật

Chương này hướng dẫn bạn cách tạo các hộp màu trong một trang của tài liệu PDF.

Tạo hộp trong tài liệu PDF

Bạn có thể thêm các hộp hình chữ nhật trong một trang PDF bằng cách sử dụng addRect() phương pháp của PDPageContentStream lớp học.

Sau đây là các bước để tạo hình chữ nhật trong một trang của tài liệu PDF.

Bước 1: Tải tài liệu PDF hiện có

Tải tài liệu PDF hiện có bằng phương pháp tĩnh load() sau đó PDDocumentlớp học. Phương thức này chấp nhận một đối tượng tệp làm tham số, vì đây là một phương thức tĩnh nên bạn có thể gọi nó bằng cách sử dụng tên lớp như được hiển thị bên dưới.

File file = new File("path of the document") 
PDDocument document = PDDocument.load(file);

Bước 2: Lấy Đối tượng Trang

Bạn cần truy xuất PDPage đối tượng của trang bắt buộc nơi bạn muốn thêm hình chữ nhật bằng cách sử dụng getPage() phương pháp của PDDocumentlớp học. Với phương pháp này, bạn cần chuyển chỉ mục của trang mà bạn muốn thêm hình chữ nhật.

PDPage page = document.getPage(0);

Bước 3: Chuẩn bị Luồng nội dung

Bạn có thể chèn nhiều loại phần tử dữ liệu khác nhau bằng cách sử dụng đối tượng của lớp có tên PDPageContentStream. Do đó, bạn cần phải truyền đối tượng document và đối tượng trang cho phương thức khởi tạo của lớp này, khởi tạo lớp này bằng cách chuyển hai đối tượng này đã được tạo trong các bước trước đó như hình dưới đây.

PDPageContentStream contentStream = new PDPageContentStream(document, page);

Bước 4: Đặt màu không vuốt

Bạn có thể đặt màu không vuốt sang hình chữ nhật bằng cách sử dụng setNonStrokingColor() phương pháp của lớp PDPageContentStream. Đối với phương pháp này, bạn cần chuyển màu cần thiết làm tham số như hình dưới đây.

contentStream.setNonStrokingColor(Color.DARK_GRAY);

Bước 5: Vẽ hình chữ nhật

Vẽ hình chữ nhật với các kích thước được yêu cầu bằng cách sử dụng addRect()phương pháp. Đối với phương pháp này, bạn cần chuyển các kích thước của hình chữ nhật sẽ được thêm vào như hình dưới đây.

contentStream.addRect(200, 650, 100, 100);

Bước 6: Làm đầy hình chữ nhật

Các fill() phương pháp của PDPageContentStream lớp điền vào đường dẫn giữa các kích thước được chỉ định với màu cần thiết như hình dưới đây.

contentStream.fill();

Bước 7: Đóng tài liệu

Cuối cùng đóng tài liệu bằng close() phương pháp của PDDocument lớp như hình bên dưới.

document.close();

Thí dụ

Giả sử chúng ta có một tài liệu PDF có tên blankpage.pdf trong con đường C:\PdfBox_Examples\ và nó chứa một trang trống như hình dưới đây.

Ví dụ này trình bày cách tạo / chèn hình chữ nhật trong tài liệu PDF. Ở đây, chúng tôi sẽ tạo một hộp trong PDF trống. Lưu mã này thànhAddRectangles.java.

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("C:/PdfBox_Examples/BlankPage.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("C:/PdfBox_Examples/colorbox.pdf");
      document.save(file1);

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

Biên dịch và thực thi tệp Java đã lưu từ dấu nhắc lệnh bằng các lệnh sau.

javac AddRectangles.java 
java AddRectangles

Khi thực hiện, chương trình trên tạo một hình chữ nhật trong tài liệu PDF hiển thị hình ảnh sau.

Rectangle created

Nếu bạn xác minh đường dẫn đã cho và mở tài liệu đã lưu - colorbox.pdf, bạn có thể quan sát thấy một hộp được chèn trong đó như hình dưới đây.