iText - Đặt phông chữ

Trong chương này, chúng ta sẽ xem cách đặt màu và phông chữ cho văn bản trong tài liệu PDF bằng thư viện iText.

Đặt Phông chữ của Văn bản trong 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ó.

Để thêm một đoạn văn vào tài liệu, bạn cần khởi tạo Paragraph và thêm đối tượng này vào tài liệu bằng cách sử dụng add()phương pháp. Bạn có thể đặt màu và phông chữ cho văn bản bằng các phương phápsetFontColor()setFont() tương ứng.

Sau đây là các bước để đặt màu và phông chữ cho văn bản trong 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/fonts.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 tài liệu Pdf

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ớ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 lớp 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 lớp Tài liệu bằng cách chuyển đối tượng của lớp PdfDocument được tạo ở các bước trước, như được hiển thị bên dưới.

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

Bước 4: Tạo văn bản

Tạo văn bản bằng cách khởi tạo Text lớp của gói com.itextpdf.layout.element như hình bên dưới.

// Creating text object 
Text text = new Text("Tutorialspoint");

Bước 5: Đặt phông chữ và màu sắc cho văn bản

Tạo PdfFont đối tượng sử dụng createFont() phương pháp của lớp PdfFontFactory của gói com.itextpdf.kernel.font như hình bên dưới

// Setting font of the text PdfFont 
font = PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD);

Bây giờ, hãy đặt phông chữ cho văn bản bằng cách sử dụng setFont() phương pháp của Textlớp cho phương thức này. Vượt quaPdfFont đối tượng như một tham số, như được hiển thị bên dưới.

text1.setFont(font);

Để đặt màu cho văn bản, hãy gọi setFontColor() của lớp Text, như hình dưới đây.

// Setting font color 
text.setFontColor(Color.GREEN);

Bước 6: Thêm văn bản vào đoạn văn

Tạo một Paragraph đối tượng lớp và thêm văn bản đã tạo ở trên bằng cách sử dụng add() như hình dưới đây.

// Creating Paragraph 
Paragraph paragraph = new Paragraph();  

// Adding text to the paragraph 
paragraph.add(text);

Bước 7: Thêm đoạn văn vào tài liệu

Thêm đoạn văn vào tài liệu bằng cách sử dụng add() phương pháp của Document lớp, như hình dưới đây.

doc.add(paragraph1)

Bước 8: Đó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 đặt màu và phông chữ thành văn bản trong PDF bằng thư viện iText. Nó tạo ra một tài liệu PDF với tênfonts.pdf, định dạng văn bản và lưu nó trong đường dẫn C:/itextExamples/

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

import com.itextpdf.io.font.FontConstants; 
import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.font.PdfFontFactory; 
import com.itextpdf.kernel.font.PdfFont; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Paragraph; 
import com.itextpdf.layout.element.Text;  

public class FormatingTheText {     
   public static void main(String args[]) throws Exception {        
      // Creating a PdfWriter object   
      String dest = "C:/itextExamples/fonts.pdf";   
      PdfWriter writer = new PdfWriter(dest);             
   
      // Creating a PdfDocument object      
      PdfDocument pdf = new PdfDocument(writer);                   
   
      // Creating a Document object       
      Document doc = new Document(pdf);
   
      // Creating text object       
      Text text1 = new Text("Tutorialspoint");              
   
      // Setting font of the text       
      PdfFont font = PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD);       
      text1.setFont(font);                 
   
      // Setting font color
      text1.setFontColor(Color.GREEN);
   
      // Creating text object
      Text text2 = new Text("Simply Easy Learning");
      text2.setFont(PdfFontFactory.createFont(FontConstants.HELVETICA));         
      
      // Setting font color
      text2.setFontColor(Color.BLUE);
      
      // Creating Paragraph
      Paragraph paragraph1 = new Paragraph();
      
      // Adding text1 to the paragraph
      paragraph1.add(text1);
      paragraph1.add(text2);
      
      // Adding paragraphs to the document
      doc.add(paragraph1);
      doc.close();       
      
      System.out.println("Text added to pdf ..");   
   }     
}

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

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

Text added to pdf ..

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.