iText - Vẽ đường thẳng

Trong chương này, chúng ta sẽ xem cách vẽ một đường thẳng trên tài liệu PDF bằng thư viện iText.

Vẽ một đường trên PDF

Bạn có thể tạo một Tài liệu PDF trống bằng cách khởi tạo Documentlớp học. Trong khi khởi tạo lớp này, bạn cần phải vượt quaPdfDocument đối tượng như một tham số, cho phương thức khởi tạo của nó.

Để vẽ một đường thẳng trên PdfDocument Khởi tạo PdfCanvas lớp của gói com.itextpdf.kernel.pdf.canvas và tạo một dòng bằng cách sử dụng moveTo()lineTO() các phương thức của lớp này.

Sau đây là các bước để vẽ một đường thẳng trên tài liệu pdf.

Bước 1: Tạo đối tượng PdfWriter

Các PdfWriterlớp đại diện cho DocWriter cho một tệp PDF. Lớp này thuộc về góicom.itextpdf.kernel.pdf. Hàm tạo của lớp này chấp nhận một chuỗi, đại diện cho đường dẫn của tệp nơi tệp PDF sẽ được tạo.

Khởi tạo lớp PdfWriter bằng cách chuyển một giá trị chuỗi (đại diện cho đường dẫn mà bạn cần tạo PDF) đến phương thức khởi tạo của nó, như được hiển thị bên dưới.

// Creating a PdfWriter 
String dest = "C:/itextExamples/drawingLine.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Khi một đối tượng thuộc loại này được chuyển đến PdfDocument (lớp), mọi phần tử được thêm vào tài liệu này sẽ được ghi vào tệp được chỉ định.

Bước 2: Tạo đối tượng PdfDocument

Các PdfDocumentlớp là lớp đại diện cho Tài liệu PDF trong iText. Lớp này thuộc về góicom.itextpdf.kernel.pdf. Để khởi tạo lớp này (ở chế độ viết), bạn cần chuyển một đối tượng của lớpPdfWriter với hàm tạo của nó.

Khởi tạo lớp PdfDocument bằng cách chuyển đối tượng PdfWriter đã tạo ở trên tới phương thức khởi tạo của nó, như được hiển thị bên dưới.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Khi một đối tượng PdfDocument được tạo, bạn có thể thêm các phần tử khác nhau như trang, phông chữ, tệp đính kèm và trình xử lý sự kiện bằng cách sử dụng các phương pháp tương ứng do lớp của nó cung cấp.

Bước 3: Tạo đối tượng Tài liệu

Các Document lớp của gói com.itextpdf.layoutlà phần tử gốc trong khi tạo một tệp PDF tự túc. Một trong những hàm tạo của lớp này chấp nhận một đối tượng của lớp PdfDocument.

Khởi tạo Document lớp bằng cách truyền đối tượng của lớp PdfDocument đã tạo ở các bước trước như hình dưới đây.

// Creating a Document   
Document document = new Document(pdfDoc);

Bước 4: Tạo đối tượng PdfCanvas

Tạo một cái mới PdfPage lớp học sử dụng addNewPage() phương pháp của PdfDocument lớp học.

Khởi tạo PdfCanvas đối tượng của gói com.itextpdf.kernel.pdf.canvas bằng cách chuyển ở trên đã tạo PdfPage đối tượng với hàm tạo của lớp này, như được hiển thị bên dưới.

// Creating a new page 
PdfPage pdfPage = pdfDoc.addNewPage();           

// Creating a PdfCanvas object 
PdfCanvas canvas = new PdfCanvas(pdfPage);

Bước 5: Vẽ đường

Đặt điểm ban đầu của dòng bằng cách sử dụng moveTO() phương pháp của Canvas lớp, như hình dưới đây.

// Initial point of the line 
canvas.moveTo(100, 300);

Bây giờ, vẽ một đường thẳng từ điểm này đến điểm khác bằng cách sử dụng lineTo() như hình dưới đây.

// Drawing the line 
canvas.lineTo(500, 300);

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

Đóng tài liệu bằng cách sử dụng close() phương pháp của Document lớp, như hình dưới đây.

// Closing the document 
document.close();

Thí dụ

Chương trình Java sau đây trình bày cách vẽ một đường thẳng trong tài liệu PDF bằng thư viện iText. Nó tạo ra một tài liệu PDF với têndrawingLine.pdf, vẽ một vòng cung trong đó và lưu nó trong đường dẫn C:/itextExamples/

Lưu mã này trong một tệp có tên DrawingLine.java.

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.canvas.PdfCanvas; 
import com.itextpdf.layout.Document;  

public class DrawingLine {     
   public static void main(String args[]) throws Exception {            
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/drawingLine.pdf";             
      PdfWriter writer = new PdfWriter(dest);           
      
      // Creating a PdfDocument object       
      PdfDocument pdfDoc = new PdfDocument(writer);                   
      
      // Creating a Document object       
      Document doc = new Document(pdfDoc);                
      
      // Creating a new page       
      PdfPage pdfPage = pdfDoc.addNewPage();               
      
      // Creating a PdfCanvas object       
      PdfCanvas canvas = new PdfCanvas(pdfPage);              
      
      // Initial point of the line       
      canvas.moveTo(100, 300);              
      
      // Drawing the line       
      canvas.lineTo(500, 300);           
      
      // Closing the path stroke       
      canvas.closePathStroke();              
      
      // Closing the document       
      doc.close();  
      
      System.out.println("Object drawn on pdf successfully");             
   }     
}

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 DrawingLine.java 
java DrawingLine

Khi thực hiện, chương trình trên tạo một tài liệu PDF, hiển thị thông báo sau.

Object drawn on pdf successfully

Nếu bạn xác minh đường dẫn được chỉ định, bạn có thể tìm thấy tài liệu PDF đã tạo, như được hiển thị bên dưới.