iText - Hướng dẫn nhanh

Định dạng Tài liệu Di động (PDF) là một định dạng tệp giúp trình bày dữ liệu theo cách độc lập với phần mềm ứng dụng, phần cứng và hệ điều hành. Mỗi tệp PDF chứa mô tả của một tài liệu phẳng có bố cục cố định, bao gồm văn bản, phông chữ, đồ họa và các thông tin khác cần thiết để hiển thị nó.

Có một số thư viện có sẵn để tạo và thao tác tài liệu PDF thông qua các chương trình, chẳng hạn như -

  • Adobe PDF Library- Thư viện này cung cấp API bằng các ngôn ngữ như C ++, .NET và Java. Sử dụng tính năng này, chúng tôi có thể chỉnh sửa, xem, in và trích xuất văn bản từ các tài liệu PDF.

  • Formatting Objects Processor- Bộ định dạng in mã nguồn mở được điều khiển bởi Đối tượng Định dạng XSL và một bộ định dạng độc lập đầu ra. Mục tiêu đầu ra chính là PDF.

  • PDF Box- Apache PDFBox là một thư viện Java mã nguồn mở hỗ trợ phát triển và chuyển đổi các tài liệu PDF. Sử dụng thư viện này, bạn có thể phát triển các chương trình Java để tạo, chuyển đổi và thao tác các tài liệu PDF.

  • Jasper Reports - Đây là một công cụ báo cáo Java tạo báo cáo trong tài liệu PDF bao gồm Microsoft Excel, RTF, ODT, các giá trị được phân tách bằng dấu phẩy và các tệp XML.

IText là gì?

Tương tự như iText của phần mềm được liệt kê ở trên, bạn có thể phát triển các chương trình Java để tạo, chuyển đổi và thao tác các tài liệu PDF.

Các tính năng của iText

Sau đây là các tính năng đáng chú ý của thư viện iText:

  • Interactive- iText cung cấp cho bạn các lớp (API) để tạo các tài liệu PDF tương tác. Sử dụng những thứ này, bạn có thể tạo bản đồ và sách.

  • Adding bookmarks, page numbers, etc - Sử dụng iText, bạn có thể thêm dấu trang, số trang và hình mờ.

  • Split & Merge - Sử dụng iText, bạn có thể chia một tệp PDF hiện có thành nhiều tệp PDF và cũng có thể thêm / nối các trang bổ sung vào nó.

  • Fill Forms - Sử dụng iText, bạn có thể điền vào các biểu mẫu tương tác trong một tài liệu PDF.

  • Save as Image - Sử dụng iText, bạn có thể lưu PDF dưới dạng tệp hình ảnh, chẳng hạn như PNG hoặc JPEG.

  • Canvas - Thư viện iText cung cấp cho bạn một lớp Canvas mà bạn có thể vẽ các hình dạng hình học khác nhau trên tài liệu PDF như hình tròn, đường thẳng, v.v.

  • Create PDFs- Sử dụng iText, bạn có thể tạo một tệp PDF mới từ các chương trình Java của mình. Bạn cũng có thể bao gồm hình ảnh và phông chữ.

Môi trường IText

Làm theo các bước dưới đây để thiết lập môi trường iText trên Eclipse.

Step 1 - Cài đặt Eclipse và mở một dự án mới trong đó như hình dưới đây.

Step 2 - Tạo một iTextSample dự án như hình dưới đây.

Step 3- Nhấp chuột phải vào dự án và chuyển thành dự án Maven như hình bên dưới. Khi bạn chuyển đổi nó thành dự án Maven, nó sẽ cung cấp cho bạnpom.xmlnơi bạn cần đề cập đến các phụ thuộc bắt buộc. Sau đó,jar các tệp của các phụ thuộc đó sẽ được tự động tải xuống dự án của bạn.

Step 4 - Bây giờ, trong pom.xml của dự án, sao chép và dán nội dung sau (phần phụ thuộc cho ứng dụng iText) và làm mới dự án.

Using pom.xml

Chuyển đổi dự án thành dự án Maven và thêm nội dung sau vào pom.xml.

<project xmlns="http://maven.apache.org/POM/4.0.0" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
   http://maven.apache.org/xsd/maven-4.0.0.xsd">   
   
   <modelVersion>4.0.0</modelVersion>   
   <groupId>SanthoshExample</groupId>   
   <artifactId>SanthoshExample</artifactId>   
   <version>0.0.1-SNAPSHOT</version>   
   <build>     
      <sourceDirectory>src</sourceDirectory>     
      <plugins>       
         <plugin>         
            <artifactId>maven-compiler-plugin</artifactId>         
            <version>3.5.1</version>         
            <configuration>           
               <source>1.8</source>           
               <target>1.8</target>      
            </configuration>       
         </plugin>     
      </plugins>   
   </build>     
   
   <dependencies>     
      <!-- always needed -->     
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>kernel</artifactId>         
         <version>7.0.2</version>     
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>io</artifactId>         
         <version>7.0.2</version>     
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>layout</artifactId>         
         <version>7.0.2</version>
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>forms</artifactId>         
         <version>7.0.2</version>    
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>pdfa</artifactId>         
         <version>7.0.2</version>     
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>sign</artifactId>         
         <version>7.0.2</version>     
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>barcodes</artifactId>         
         <version>7.0.2</version>     
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>font-asian</artifactId>         
         <version>7.0.2</version>     
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>hyph</artifactId>         
         <version>7.0.2</version>    
      </dependency> 
   </dependencies>
   
</project>

Cuối cùng, nếu bạn quan sát các phụ thuộc của Maven, bạn có thể thấy rằng tất cả các jar các tệp đã được tải xuống.

Bây giờ chúng ta hãy hiểu cách tạo tài liệu PDF bằng thư viện iText.

Tạo tài liệu PDF trống

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ó.

Sau đây là các bước để tạo một tài liệu PDF trống.

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

Các PdfWriterlớp đại diện cho Doc Writer 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/sample.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 thức tương ứng do lớp của nó cung cấp.

Bước 3: Thêm một trang trống

Các addNewPage() phương pháp của PdfDocument lớp được sử dụng để tạo một trang trống trong tài liệu PDF.

Thêm một trang trống vào tài liệu PDF đã tạo ở bước trước như hình dưới đây.

// Adding an empty page 
pdfDoc.addNewPage();

Bước 4: 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 5: Đó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 bên dưới.

// Closing the document 
document.close();

Thí dụ

Sau đây là chương trình Java trình bày việc tạo Tài liệu PDF. Nó tạo ra một tài liệu PDF với tênsample.pdf, thêm một trang trống vào nó và lưu nó trong đường dẫn C:/itextExamples/

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

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.layout.Document;  

public class create_PDF {    
   public static void main(String args[]) throws Exception {              
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/sample.pdf";       
      PdfWriter writer = new PdfWriter(dest); 
   
      // Creating a PdfDocument       
      PdfDocument pdfDoc = new PdfDocument(writer);              
   
      // Adding a new page 
      pdfDoc.addNewPage();               
   
      // Creating a Document        
      Document document = new Document(pdfDoc);               
   
      // Closing the document    
      document.close();              
      System.out.println("PDF Created");    
   } 
}

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

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

PDF created

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ư hình bên dưới.

Vì đây là một tài liệu trống, nếu bạn cố gắng mở tài liệu này, nó sẽ hiển thị thông báo lỗi, như thể hiện trong ảnh chụp màn hình sau.

Trong chương này, chúng ta sẽ xem cách tạo tài liệu PDF với AreaBreak bằng thư viện iText.

Tạo một khu vực

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ố, đối với phương thức khởi tạo của nó. Sau đó, để thêm một areabreak vào tài liệu, bạn cần khởi tạoAreaBreak lớp học và add đối tượng này để lập tài liệu bằng cách sử dụng add() phương pháp.

Sau đây là các bước để tạo một tài liệu PDF trống với AreaBreak.

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

Các PdfWriter lớp này đại diện cho Doc Writer cho một tệp PDF, lớp này thuộc về gói com.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, tới 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/addingAreaBreak.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), thì 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 PdfDocument lớp là lớp đại diện cho Tài liệu PDF trong iText, lớp này thuộc về gói com.itextpdf.kernel.pdf. Để khởi tạo lớp này (ở chế độ viết), bạn cần truyề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, trình xử lý sự kiện bằng cách sử dụng các phương thức tương ứng được cung cấp bởi lớp của nó.

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 đượ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 đối tượng Area Break

Các AreaBreak lớp thuộc về gói com.itextpdf.layout.element. Khi khởi tạo lớp này, vùng ngữ cảnh hiện tại sẽ bị kết thúc và một vùng mới sẽ được tạo với cùng kích thước (trong trường hợp chúng ta sử dụng hàm tạo mặc định).

Khởi tạo AreaBreak lớp như hình bên dưới.

// Creating an Area Break    
AreaBreak aB = new AreaBreak();

Bước 5: Thêm AreaBreak

Thêm areabreak đối tượng được tạo ở bước trước bằng cách sử dụng add() của lớp Document, như được hiển thị bên dưới.

// Adding area break to the PDF 
document.add(aB);

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 bên dưới.

// Closing the document 
document.close();

Thí dụ

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

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

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.AreaBreak;  

public class AddingAreaBreak {    
   public static void main(String args[]) throws Exception {       
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/addingAreaBreak.pdf";       
      PdfWriter writer = new PdfWriter(dest);
   
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);             
   
      // Creating a Document by passing PdfDocument object to its constructor       
      Document document = new Document(pdf);  
   
      // Creating an Area Break          
      AreaBreak aB = new AreaBreak();           
   
      // Adding area break to the PDF       
      document.add(aB);              
   
      // Closing the document       
      document.close();           
      System.out.println("Pdf created");       
   } 
}

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

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

Pdf Created

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.

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

Tạo một đoạn văn

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ố, đối với phương thức khởi tạo của nó. Sau đó, để thêm một đoạn vào tài liệu, bạn cần khởi tạoParagraph 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.

Sau đây là các bước để tạo tài liệu PDF với một đoạn văn trong đó.

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

Các PdfWriterlớp đại diện cho Doc Writer 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/addingParagraph.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Khi đối tượng của 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ạ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 thức 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 đã 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 Đoạn văn

Các Paragraphlớp đại diện cho một khối thông tin văn bản và đồ họa độc lập. Nó thuộc về góicom.itextpdf.layout.element.

Khởi tạo Paragraph bằng cách chuyển nội dung văn bản dưới dạng một chuỗi tới phương thức khởi tạo của nó, như được hiển thị bên dưới.

String para = "Welcome to Tutorialspoint."; 
// Creating an Area Break    
Paragraph para = new Paragraph (para);

Bước 5: Thêm đoạn văn

Thêm Paragraph đối tượng được tạo ở bước trước bằng cách sử dụng add() phương pháp của Document lớp, như hình dưới đây.

// Adding area break to the PDF 
document.add(para);

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 tạo tài liệu PDF và thêm đoạn văn vào tài liệu đó bằng thư viện iText. Nó tạo ra một tài liệu PDF với tênaddingParagraph.pdf, thêm một đoạn vào nó và lưu nó trong đường dẫn C:/itextExamples/.

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

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Paragraph;  

public class AddingParagraph {    
   public static void main(String args[]) throws Exception {
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/addingParagraph.pdf";       
      PdfWriter writer = new PdfWriter(dest);           
      
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdf);              
      String para1 = "Tutorials Point originated from the idea that there exists 
      a class of readers who respond better to online content and prefer to learn 
      new skills at their own pace from the comforts of their drawing rooms.";  
      
      String para2 = "The journey commenced with a single tutorial on HTML in 2006 
      and elated by the response it generated, we worked our way to adding fresh 
      tutorials to our repository which now proudly flaunts a wealth of tutorials 
      and allied articles on topics ranging from programming languages to web designing 
      to academics and much more.";              
      
      // Creating Paragraphs       
      Paragraph paragraph1 = new Paragraph(para1);             
      Paragraph paragraph2 = new Paragraph(para2);              
      
      // Adding paragraphs to document       
      document.add(paragraph1);       
      document.add(paragraph2);           
      
      // Closing the document       
      document.close();             
      System.out.println("Paragraph added");    
   } 
}

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

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

Paragraph added

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.

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

Tạo danh sách

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ố, đối với phương thức khởi tạo của nó. Sau đó, để thêm danh sách vào tài liệu, bạn cần khởi tạoList 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.

Sau đây là các bước để tạo tài liệu PDF và thêm Danh sách trong đó.

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/addingList.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Khi đối tượng của 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 PdfDocument lớp là lớp đại diện cho Tài liệu PDF trong iText, lớp này thuộc về gói com.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 thức 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 đượ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 đối tượng Danh sách

Các Listlớp đại diện cho một loạt các đối tượng được phác thảo theo chiều dọc. Nó thuộc về góicom.itextpdf.layout.element.

Khởi tạo List lớp như hình bên dưới.

// Creating a list  
List list = new List();

Bước 5: Thêm các phần tử vào danh sách

Thêm nội dung vào list đối tượng sử dụng add() phương pháp của List lớp bằng cách chuyển các giá trị Chuỗi, như được hiển thị bên dưới.

//  Add elements to the list 
list.add("Java"); 
list.add("JavaFX"); 
list.add("Apache Tika"); 
list.add("OpenCV");

Bước 6: Thêm danh sách vào tài liệu

Thêm list đối tượng được tạo ở bước trước bằng cách sử dụng add() phương pháp của Document lớp, như hình dưới đây.

// Adding list to the document 
document.add(list);

Bước 7: Đó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 bên dưới.

// Closing the document 
document.close();

Thí dụ

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

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

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

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

public class AddingList {      
   public static void main(String args[]) throws Exception {               
      // Creating a PdfWriter
      String dest = "C:/itextExamples/addngList.pdf";       
      PdfWriter writer = new PdfWriter(dest);              
   
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);              
   
      // Creating a Document        
      Document document = new Document(pdf);              
   
      // Creating a Paragraph       
      Paragraph paragraph = new Paragraph("Tutorials Point provides the following tutorials");
      
      // Creating a list
      List list = new List();  
      
      // Add elements to the list       
      list.add("Java");       
      list.add("JavaFX");      
      list.add("Apache Tika");       
      list.add("OpenCV");       
      list.add("WebGL");       
      list.add("Coffee Script");       
      list.add("Java RMI");       
      list.add("Apache Pig");              
      
      // Adding paragraph to the document       
      document.add(paragraph);                    
     
      // Adding list to the document       
      document.add(list);
      
      // Closing the document       
      document.close();              
      System.out.println("List added");    
   } 
}

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

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

List added

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.

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

Thêm bảng vào 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ó. Sau đó, để thêm bảng vào tài liệu, bạn cần khởi tạoTable 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.

Sau đây là các bước để tạo tài liệu PDF với Bảng trong đó.

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 PdfWriter lớp 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/addingTable.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Khi đối tượng của 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 thức 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ớpPdfDocument.

Khởi tạo Document lớp bằng cách truyề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 đối tượng Table

Các Tablelớp đại diện cho một lưới hai chiều chứa đầy các ô được sắp xếp theo hàng và cột. Nó thuộc về góicom.itextpdf.layout.element.

Khởi tạo Table lớp như hình bên dưới.

// Creating a table object 
float [] pointColumnWidths = {150F, 150F, 150F}; 
Table table = new Table(pointColumnWidths);

Bước 5: Thêm ô vào bảng

Tạo một cell đối tượng bằng cách khởi tạo Cell lớp của gói com.itextpdf.layout.element. Thêm nội dung của ô bằng cách sử dụngadd() phương thức của lớp này.

Cuối cùng, để thêm ô này vào bảng, hãy gọi addCell() phương pháp của Table lớp và vượt qua cell đối tượng như một tham số cho phương thức này, như được hiển thị bên dưới.

// Adding cell 1 to the table 
Cell cell1 = new Cell();   // Creating a cell 
cell1.add("Name");         // Adding content to the cell 
table.addCell(cell1);      // Adding cell to the table       

// Adding cell 2 to the table Cell 
cell2 = new Cell();       // Creating a cell 
cell2.add("Raju");        // Adding content to the cell 
table.addCell(cell2);     // Adding cell to the table

Bước 6: Thêm bảng vào tài liệu

Thêm table đối tượng được tạo ở bước trước bằng cách sử dụng add() phương pháp của Document lớp như hình bên dưới.

// Adding list to the document 
document.add(table);

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

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

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.Table;  

public class AddingTable {      
   public static void main(String args[]) throws Exception {           
      // Creating a PdfDocument object   
      String dest = "C:/itextExamples/addingTable.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 a table       
      float [] pointColumnWidths = {150F, 150F, 150F};   
      Table table = new Table(pointColumnWidths);    
      
      // Adding cells to the table       
      table.addCell(new Cell().add("Name"));       
      table.addCell(new Cell().add("Raju"));       
      table.addCell(new Cell().add("Id"));       
      table.addCell(new Cell().add("1001"));       
      table.addCell(new Cell().add("Designation"));       
      table.addCell(new Cell().add("Programmer"));                 
         
      // Adding Table to document        
      doc.add(table);                  
         
      // Closing the document       
      doc.close();
      System.out.println("Table created 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 AddingTable.java 
java AddingTable

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

Table created 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.

Trong chương này, chúng ta sẽ xem cách tạo tài liệu PDF, thêm bảng và định dạng nội dung của ô trong bảng bằng thư viện iText.

Định dạng các ô trong bảng

Bạn có thể tạo một tệp PDF trống Documentbằng cách khởi tạo lớp Tài liệu. 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ố, đối với phương thức khởi tạo của nó. Sau đó, để thêm bảng vào tài liệu, bạn cần khởi tạoTable 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ể định dạng nội dung của một ô trong bảng bằng các phương pháp củaCell lớp học.

Sau đây là các bước để định dạng nội dung của một ô trong bảng.

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/addingBackground.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 PdfDocumentclass là lớp đại diện cho PDFDocument 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 PdfDocument lớp bằng cách chuyển ở trên đã tạo PdfWriter đối tượng với hàm tạo của nó, như được hiển thị bên dưới.

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

Một lần PdfDocument đối tượng đượ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ác phương thức tương ứng được cung cấp bởi lớp của nó.

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 đượ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 đối tượng Table

Các Tablelớp đại diện cho một lưới hai chiều chứa đầy các ô, được sắp xếp theo hàng và cột. Nó thuộc về góicom.itextpdf.layout.element.

Khởi tạo lớp Table như hình dưới đây.

// Creating a table 
float [] pointColumnWidths = {200F, 200F}; 
Table table = new Table(pointColumnWidths);

Bước 5: Tạo ô

Tạo một cell đối tượng bằng cách khởi tạo Cell lớp của gói com.itextpdf.layout.element. Thêm nội dung của ô bằng cách sử dụngadd() phương pháp của Cell lớp, như hình dưới đây.

// Adding cell 1 to the table 
Cell cell1 = new Cell();     // Creating a cell 
cell1.add("Name");           // Adding content to the cell       

// Adding cell 2 to the table 
Cell cell2 = new Cell();     // Creating a cell 
cell2.add("Raju");           // Adding content to the cell

Bước 6: Thêm nền vào ô

Khi bạn đã tạo ô và thêm nội dung vào ô đó, bạn có thể định dạng ô. Ví dụ: bạn có thể đặt nền của nó, căn chỉnh văn bản bên trong ô, thay đổi màu văn bản, v.v., bằng cách sử dụng các phương thức khác nhau của lớp ô nhưsetBackgroundColor(), setBorder(), setTextAlignment().

Bạn có thể đặt màu nền, đường viền và căn chỉnh văn bản cho ô đã tạo ở bước trước, như được hiển thị bên dưới.

c1.setBackgroundColor(Color.DARK_GRAY);    // Setting background color to cell1 
c1.setBorder(Border.NO_BORDER);            // Setting border to cell1 
c1.setTextAlignment(TextAlignment.CENTER); // Setting text alignment to cell1

Bước 7: Thêm ô vào bảng

Cuối cùng, để thêm ô này vào bảng, hãy gọi addCell() phương pháp của Table lớp và vượt qua cell đối tượng như một tham số cho phương thức này, như được hiển thị bên dưới.

table.addCell(c1);

Bước 8: Thêm bảng vào tài liệu

Thêm table đối tượng được tạo ở bước trước bằng cách sử dụng add() phương pháp của Document lớp như hình bên dưới.

// Adding list to the document 
document.add(table);

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

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

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document;
import com.itextpdf.layout.border.Border; 
import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.Table; 
import com.itextpdf.layout.property.TextAlignment;  

public class BackgroundToTable {      
   public static void main(String args[]) throws Exception {        
      // Creating a PdfWriter object   
      String dest = "C:/itextExamples/addingBackground.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 table       
      float [] pointColumnWidths = {200F, 200F};       
      Table table = new Table(pointColumnWidths);
      
      // Populating row 1 and adding it to the table               
      Cell c1 = new Cell();                        // Creating cell 1 
      c1.add("Name");                              // Adding name to cell 1   
      c1.setBackgroundColor(Color.DARK_GRAY);      // Setting background color
      c1.setBorder(Border.NO_BORDER);              // Setting border
      c1.setTextAlignment(TextAlignment.CENTER);   // Setting text alignment      
      table.addCell(c1);                           // Adding cell 1 to the table 
      
      Cell c2 = new 
      Cell();                               
      c2.add("Raju");       
      c2.setBackgroundColor(Color.GRAY);       
      c2.setBorder(Border.NO_BORDER);       
      c2.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c2);      
      
      // Populating row 2 and adding it to the table               
      Cell c3 = new Cell();       
      c3.add("Id");       
      c3.setBackgroundColor(Color.WHITE);       
      c3.setBorder(Border.NO_BORDER);       
      c3.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c3);                          
      
      Cell c4 = new Cell();       
      c4.add("001");       
      c4.setBackgroundColor(Color.WHITE);       
      c4.setBorder(Border.NO_BORDER);       
      c4.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c4);                          
      
      // Populating row 3 and adding it to the table        
      Cell c5 = new Cell();       
      c5.add("Designation");       
      c5.setBackgroundColor(Color.DARK_GRAY);       
      c5.setBorder(Border.NO_BORDER);       
      c5.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c5);                 
      
      Cell c6 = new Cell(); 
      c6.add("Programmer");       
      c6.setBackgroundColor(Color.GRAY);       
      c6.setBorder(Border.NO_BORDER);       
      c6.setTextAlignment(TextAlignment.CENTER);       
      table.addCell(c6);                              
      
      // Adding Table to document        
      doc.add(table);                  
      
      // Closing the document       
      doc.close();  
      
      System.out.println("Background added 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 BackgroundToTable.java 
java BackgroundToTable

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

Background added 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.

Trong chương này, chúng ta sẽ xem cách định dạng đường viền của một ô trong bảng bằng thư viện iText.

Định dạng các đường viền của một ô

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ó.

Sau đó, để thêm bảng vào tài liệu, bạn cần khởi tạo Table 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ể thêm nhiều loại đường viền như DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorder, v.v. với nhiều màu sắc khác nhau bằng cách sử dụng setBorder() phương pháp của Cell lớp học.

Sau đây là các bước để định dạng đường viền của một ô trong bảng.

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/coloredBorders.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 PdfDocumentclass là lớp đại diện cho PDFDocument 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 PdfDocument lớp bằng cách chuyển ở trên đã tạo PdfWriter đối tượng với hàm 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 thức 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 đượ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 đối tượng Table

Các Tablelớp đại diện cho một lưới hai chiều chứa đầy các ô được sắp xếp theo hàng và cột. Nó thuộc về góicom.itextpdf.layout.element.

Khởi tạo Table lớp như hình bên dưới.

// Creating a table 
float [] pointColumnWidths = {200F, 200F}; 
Table table = new Table(pointColumnWidths);

Bước 5: Tạo ô

Tạo một đối tượng ô bằng cách khởi tạo Cell lớp của gói com.itextpdf.layout.element thêm nội dung của ô bằng cách sử dụng add() phương pháp của Cell lớp, như hình dưới đây.

// Adding cell 1 to the table 
Cell cell1 = new Cell(); // Creating a cell 
cell1.add("Name");       // Adding content to the cell

Bước 6: Định dạng đường viền của ô

Thư viện iText cung cấp các lớp khác nhau đại diện cho đường viền như DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorder, Vân vân.

Các hàm tạo của các lớp này chấp nhận hai tham số: a color đối tượng đại diện cho màu của đường viền và một integer đại diện cho chiều rộng của đường viền.

Chọn một trong các loại đường viền này và tạo đường viền tương ứng bằng cách chuyển color đối tượng và một integer đại diện cho chiều rộng, như được hiển thị bên dưới.

Border b1 = new DashedBorder(Color.RED, 3);

Bây giờ, đặt đường viền của ô bằng cách sử dụng setBorder() phương pháp của celllớp học. Phương thức này chấp nhận một đối tượng kiểuBorder như một tham số.

Đặt đường viền của ô bằng cách chuyển phần đã tạo ở trên Border đối tượng làm tham số cho setBorder() như hình dưới đây.

c1.setBorder(b1)

Cuối cùng, để thêm ô này vào bảng, hãy gọi addCell() phương pháp của Table lớp và vượt qua cell đối tượng như một tham số cho phương thức này, như được hiển thị bên dưới.

table.addCell(c1);

Bước 7: Thêm bảng vào tài liệu

Thêm table đối tượng được tạo ở bước trước bằng cách sử dụng add() phương pháp của Document lớp, như hình dưới đây.

// Adding list to the document 
document.add(table);

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 định dạng đường viền của ô trong bảng bằng thư viện iText. Nó tạo ra một tài liệu PDF với têncoloredBorders.pdf, thêm một bảng vào đó, định dạng nội dung của các ô và lưu nó trong đường dẫn C:/itextExamples/

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

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.border.Border; 
import com.itextpdf.layout.border.DashedBorder; 
import com.itextpdf.layout.border.DottedBorder; 
import com.itextpdf.layout.border.DoubleBorder; 
import com.itextpdf.layout.border.RoundDotsBorder; 
import com.itextpdf.layout.border.SolidBorder; 

import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.Table; 
import com.itextpdf.layout.property.TextAlignment;  

public class FormatedBorders {      
   public static void main(String args[]) throws Exception {
      // Creating a PdfWriter object   
      String dest = "C:/itextExamples/coloredBorders.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 table       
      float [] pointColumnWidths = {200F, 200F};       
      Table table = new Table(pointColumnWidths); 
   
      // Adding row 1 to the table
      Cell c1 = new Cell();
      
      // Adding the contents of the cell
      c1.add("Name");
   
      // Setting the back ground color of the cell
      c1.setBackgroundColor(Color.DARK_GRAY);    
   
      // Instantiating the Border class 
      Border b1 = new DashedBorder(Color.RED, 3);
   
      // Setting the border of the cell
      c1.setBorder(b1);
      
      // Setting the text alignment       
      c1.setTextAlignment(TextAlignment.CENTER);
   
      // Adding the cell to the table       
      table.addCell(c1);                          
      Cell c2 = new Cell();       
      c2.add("Raju");       
      c1.setBorder(new SolidBorder(Color.RED, 3));       
      c2.setTextAlignment(TextAlignment.CENTER);       
      table.addCell(c2);
   
      // Adding row 2 to the table                
      Cell c3 = new Cell();      
      c3.add("Id"); 
      c3.setBorder(new DottedBorder(Color.DARK_GRAY, 3));       
      c3.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c3);                          
      
      Cell c4 = new Cell();       
      c4.add("001");       
      c4.setBorder(new DoubleBorder(Color.DARK_GRAY, 3));       
      c4.setTextAlignment(TextAlignment.CENTER);       
      table.addCell(c4);                          
      
      // Adding row 3 to the table       
      Cell c5 = new Cell();       
      c5.add("Designation");       
      c5.setBorder(new RoundDotsBorder(Color.RED, 3));       
      c5.setTextAlignment(TextAlignment.CENTER);       
      table.addCell(c5);                 
      
      Cell c6 = new Cell();       
      c6.add("Programmer");       
      c6.setBorder(new RoundDotsBorder(Color.RED, 3)); 
      c6.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c6);                              
      
      // Adding Table to document        
      doc.add(table);                  
      
      // Closing the document       
      doc.close();  
      
      System.out.println("Borders added 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 FormatedBorders.java 
java FormatedBorders

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

Borders added 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.

Trong chương này, chúng ta sẽ xem cách thêm hình ảnh vào bảng trong tài liệu PDF bằng thư viện iText.

Thêm hình ảnh vào bảng

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ố, đối với phương thức khởi tạo của nó. Sau đó, để thêm bảng vào tài liệu, bạn cần khởi tạoTable 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.

Để thêm hình ảnh vào bảng này, bạn cần khởi tạo Cell lớp, tạo và một đối tượng của hình ảnh được yêu cầu thêm, thêm hình ảnh vào cell đối tượng sử dụng add() phương pháp của Cell lớp học.

Sau đây là các bước để chèn hình ảnh vào ô của bảng.

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

Các PdfWriter lớp này đại diện cho Doc Writer cho một tệp PDF, lớp này thuộc về gói com.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, tới 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/addingImage.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 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 thức 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ớpPdfDocument.

Khởi tạo Document lớp bằng cách truyề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 đối tượng Table

Các Tablelớp đại diện cho một lưới hai chiều chứa đầy các ô, được sắp xếp theo hàng và cột. Nó thuộc về góicom.itextpdf.layout.element.

Khởi tạo Table lớp như hình bên dưới.

// Creating a table 
float [] pointColumnWidths = {200F, 200F}; 
Table table = new Table(pointColumnWidths);

Bước 5: Tạo ô

Tạo một cell đối tượng bằng cách khởi tạo Cell lớp của gói com.itextpdf.layout, như hình dưới đây.

// Adding cell to the table
Cell cell = new Cell();  // Creating a cell

Bước 6: Tạo hình ảnh

Để tạo image , trước hết, hãy tạo một ImageData đối tượng sử dụng create() phương pháp của ImageDataFactorylớp học. Là một tham số của phương thức này, hãy chuyển một tham số chuỗi đại diện cho đường dẫn của hình ảnh, như được hiển thị bên dưới.

// Creating an ImageData object 
String imageFile = "C:/itextExamples/javafxLogo.jpg"; 
ImageData data = ImageDataFactory.create(imageFile);

Bây giờ, khởi tạo Image lớp của com.itextpdf.layout.elementgói hàng. Trong khi khởi tạo, hãy vượt quaImageData đối tượng được tạo ở trên, như một tham số cho hàm tạo của nó, như được hiển thị bên dưới.

// Creating an Image object 
Image img = new Image(data);

Thêm image đối tượng với ô bằng cách sử dụng add() phương thức của lớp ô, như được hiển thị bên dưới.

// Adding image to the cell  
cell.add(img.setAutoScale(true));

Bước 7: Thêm ô vào bảng

Cuối cùng, để thêm ô này vào bảng, hãy gọi addCell() phương pháp của Table lớp và vượt qua cell đối tượng như một tham số cho phương thức này, như được hiển thị bên dưới.

table.addCell(cell);

Bước 8: Thêm bảng vào tài liệu

Thêm table đối tượng được tạo ở bước trước bằng cách sử dụng add() phương pháp của Document lớp, như hình dưới đây.

// Adding list to the document 
document.add(table);

Bước 9: Đó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 thêm hình ảnh vào một ô của bả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ênaddingImage.pdf, thêm một bảng vào nó, chèn một hình ảnh (javafxLogo.jpg) vào một trong các ô của nó và lưu nó trong đường dẫn C:/itextExamples/.

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

import com.itextpdf.io.image.ImageData; 
import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.Image; 
import com.itextpdf.layout.element.Table;  

public class a3AddingImageToTable {
   public static void main(String args[]) throws Exception {
      // Creating a PdfWriter object 
      String dest = "C:/itextExamples/addingImage.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 table
      float [] pointColumnWidths = {150f, 150f};
      Table table = new Table(pointColumnWidths);
      
      // Populating row 1 and adding it to the table
      Cell cell1 = new Cell();
      cell1.add("Tutorial ID");
      table.addCell(cell1);
      
      Cell cell2 = new Cell();
      cell2.add("1");
      table.addCell(cell2);
      
      // Populating row 2 and adding it to the table
      Cell cell3 = new Cell();
      cell3.add("Tutorial Title");
      table.addCell(cell3);             
      
      Cell cell4 = new Cell(); 
      cell4.add("JavaFX");  
      table.addCell(cell4);
      
      // Populating row 3 and adding it to the table
      Cell cell5 = new Cell();
      cell5.add("Tutorial Author");
      table.addCell(cell5);            
      
      Cell cell6 = new Cell();
      cell6.add("Krishna Kasyap");
      table.addCell(cell6);
      
      // Populating row 4 and adding it to the table
      Cell cell7 = new Cell();
      cell7.add("Submission date");
      table.addCell(cell7);
      
      Cell cell8 = new Cell();
      cell8.add("2016-07-06");
      table.addCell(cell8);              
      
      // Populating row 5 and adding it to the table
      Cell cell9 = new Cell();
      cell9.add("Tutorial Icon");
      table.addCell(cell9);              
      
      // Creating the cell10       
      Cell cell10 = new Cell();              
      
      // Creating an ImageData object       
      String imageFile = "C:/itextExamples/javafxLogo.jpg";       
      ImageData data = ImageDataFactory.create(imageFile);        

      // Creating the image       
      Image img = new Image(data);              

      // Adding image to the cell10       
      cell10.add(img.setAutoScale(true));        

      // Adding cell110 to the table       
      table.addCell(cell10);                         
      
      // Adding Table to document        
      doc.add(table);                  
      
      // Closing the document       
      doc.close();  
      
      System.out.println("Image added to table 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 AddingImageToTable.java 
java AddingImageToTable

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

Image added to table 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.

Trong chương này, chúng ta sẽ xem cách thêm một bảng lồng nhau vào một bảng trong tài liệu PDF bằng thư viện iText.

Thêm các bảng lồng nhau 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ố, đối với phương thức khởi tạo của nó. Sau đó, để thêm bảng vào tài liệu, bạn cần khởi tạoTable 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.

Để thêm một bảng vào bảng này, bạn cần tạo một bảng khác (bảng lồng nhau) và chuyển nó vào đối tượng ô bằng cách sử dụng add() phương pháp của Cell lớp học.

Sau đây là các bước để chèn một bảng vào ô của bảng.

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/addingNestedTable.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ớp PdfWriter 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 thức 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 đượ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 đối tượng Table

Các Tablelớp đại diện cho một lưới hai chiều chứa đầy các ô, được sắp xếp theo hàng và cột. Nó thuộc về góicom.itextpdf.layout.element.

Khởi tạo Table lớp như hình bên dưới.

// Creating a table 
float [] pointColumnWidths = {200F, 200F}; 
Table table = new Table(pointColumnWidths);

Bước 5: Tạo ô

Tạo một cell đối tượng bằng cách khởi tạo Cell lớp của gói com.itextpdf.layout, như hình dưới đây.

// Adding cell to the table 
Cell contact = new Cell();    // Creating a cell

Bước 6: Tạo bảng lồng nhau

Sau khi tạo cell, tạo một bảng lồng nhau và điền vào các ô của nó, như được hiển thị bên dưới.

// Creating nested table for contact   
float [] pointColumnWidths2 = {150f, 150f}; 
Table nestedTable = new Table(pointColumnWidths2);    

// Populating row 1 and adding it to the nested table  
Cell nested1 = new Cell(); 
nested1.add("Phone"); 
nestedTable.addCell(nested1);       

Cell nested2 = new Cell(); 
nested2.add("9848022338"); 
nestedTable.addCell(nested2);  

// Populating row 2 and adding it to the nested table  
Cell nested3 = new Cell(); 
nested3.add("email"); 
nestedTable.addCell(nested3);

Cell nested4 = new Cell(); 
nested4.add("[email protected]"); 
nestedTable.addCell(nested4);     

// Populating row 3 and adding it to the nested table  
Cell nested5 = new Cell(); 
nested5.add("Address"); 
nestedTable.addCell(nested5);  

Cell nested6 = new Cell(); 
nested6.add("Hyderabad"); 
nestedTable.addCell(nested6);

Bước 7: Thêm bảng lồng nhau vào ô

Bây giờ, hãy thêm bảng lồng nhau đã tạo ở trên vào ô của bảng cha (vùng chứa) bằng cách sử dụng add() phương pháp của Celllớp học. Và thêm ô này vào bảng cha bằng cách sử dụngaddCell() phương pháp của Table lớp, như hình dưới đây.

contact.add(nestedTable); 
table.addCell(contact);

Bước 8: Thêm bảng vào tài liệu

Thêm table đối tượng được tạo ở bước trước bằng cách sử dụng add() phương pháp của Document lớp, như hình dưới đây.

// Adding list to the document 
document.add(table);

Bước 9: Đó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 thêm bảng vào một ô của bảng (bảng lồng nhau) 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ênaddingNestedTable.pdf, thêm một bảng vào nó, chèn một bảng khác vào một trong các ô của nó và lưu nó trong đường dẫn C:/itextExamples/.

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

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.Table;  

public class a4AddNestedTablesPdf {  
   public static void main(String args[]) throws Exception {                        
      // Creating a PdfWriter object   
      String dest = "C:/itextExamples/addingNestedTable.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 table       
      float [] pointColumnWidths1 = {150f, 150f};       
      Table table = new Table(pointColumnWidths1);                             
      
      // Populating row 1 and adding it to the table          
      Cell cell1 = new Cell();       
      cell1.add("Name");       
      table.addCell(cell1);             
      
      Cell cell2 = new Cell();       
      cell2.add("Raju");       
      table.addCell(cell2);                          
   
      // Populating row 2 and adding it to the table        
      Cell cell3 = new Cell();       
      cell3.add("Id");       
      table.addCell(cell3);             
      
      Cell cell4 = new Cell();       
      cell4.add("1001");       
      table.addCell(cell4);                    
   
      // Populating row 3 and adding it to the table        
      Cell cell5 = new Cell();       
      cell5.add("Designation");       
      table.addCell(cell5); 
      
      Cell cell6 = new Cell();       
      cell6.add("Programmer");       
      table.addCell(cell6);              
   
      // Creating nested table for contact         
      float [] pointColumnWidths2 = {150f, 150f};       
      Table nestedTable = new Table(pointColumnWidths2);                
      
      // Populating row 1 and adding it to the nested table        
      Cell nested1 = new Cell();       
      nested1.add("Phone");       
      nestedTable.addCell(nested1);                   
      
      Cell nested2 = new Cell();       
      nested2.add("9848022338");       
      nestedTable.addCell(nested2);                   
      
      // Populating row 2 and adding it to the nested table        
      Cell nested3 = new Cell();       
      nested3.add("email");       
      nestedTable.addCell(nested3);                    
      
      Cell nested4 = new Cell();       
      nested4.add("[email protected]");       
      nestedTable.addCell(nested4);                       
      
      // Populating row 3 and adding it to the nested table        
      Cell nested5 = new Cell();       
      nested5.add("Address");       
      nestedTable.addCell(nested5);                    
      
      Cell nested6 = new Cell();       
      nested6.add("Hyderabad");       
      nestedTable.addCell(nested6);              
      
      // Adding table to the cell       
      Cell cell7 = new Cell();       
      cell7.add("Contact");       
      table.addCell(cell7);              
      
      Cell cell8 = new Cell();       
      cell8.add(nestedTable);       
      table.addCell(cell8);
      
      // Adding table to the document       
      doc.add(table);                   
      
      // Closing the document               
      doc.close();  
      System.out.println("Nested Table Added 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 AddNestedTable.java 
java AddNestedTable

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

Nested Table Added 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.

Trong chương này, chúng ta sẽ xem cách thêm danh sách vào bảng trong tài liệu PDF bằng thư viện iText.

Thêm danh sách vào bảng 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ó. Sau đó, để thêm bảng vào tài liệu, bạn cần khởi tạoTable 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.

Để thêm một list vào bảng, bạn cần phải khởi tạo List lớp của com.itextpdf.layout.element gói và chèn nó vào cell đối tượng sử dụng add() phương pháp của Cell lớp học.

Sau đây là các bước để thêm danh sách vào ô của bảng.

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

Các PdfWriterlớp đại diện cho Doc Writer 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/addingObjects.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 gói com.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 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 thức 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 đượ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 đối tượng Table

Các Tablelớp đại diện cho một lưới hai chiều chứa đầy các ô, được sắp xếp theo hàng và cột. Nó thuộc về góicom.itextpdf.layout.element.

Khởi tạo Table lớp như hình bên dưới.

// Creating a table 
float [] pointColumnWidths = {200F, 200F}; 
Table table = new Table(pointColumnWidths);

Bước 5: Tạo ô

Tạo một cell đối tượng bằng cách khởi tạo Cell lớp của gói com.itextpdf.layout, như hình dưới đây.

// Adding cell to the table 
Cell listCell = new Cell(); // Creating a cell

Bước 6: Tạo đối tượng Danh sách

Sau khi tạo ô, hãy tạo list đối tượng bằng cách khởi tạo List lớp của gói com.itextpdf.layout.element. Tạo các mục trong danh sách bằng cách khởi tạoListItem và thêm các mục đã tạo bằng cách sử dụng add() phương pháp của List lớp, như hình dưới đây.

List list = new List(); 
ListItem item1 = new ListItem("JavaFX"); 
ListItem item2 = new ListItem("Java"); 
ListItem item3 = new ListItem("Java Servlets");        
list.add(item1); 
list.add(item2); 
list.add(item3);

Bước 7: Thêm danh sách vào ô của bảng

Bây giờ, hãy thêm danh sách đã tạo ở trên vào ô của bảng bằng cách sử dụng add()phương thức của lớp Cell. Và thêm ô này vào bảng bằng cách sử dụngaddCell() phương pháp của Table lớp, như hình dưới đây.

listCell.add(list); 
table.addCell(listCell);

Bước 8: Thêm bảng vào tài liệu

Thêm table đối tượng được tạo ở bước trước bằng cách sử dụng add() phương pháp của Document lớp, như hình dưới đây.

// Adding list to the document 
document.add(table);

Bước 9: Đó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 thêm danh sách vào một ô của bả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ênaddingObjects.pdf, thêm một bảng vào đó, chèn danh sách vào một trong các ô của nó và lưu nó trong đường dẫn C:/itextExamples/

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

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.List; 
import com.itextpdf.layout.element.ListItem; 
import com.itextpdf.layout.element.Table; 
import com.itextpdf.layout.property.TextAlignment;  

public class AddingListsToTable {      
   public static void main(String args[]) throws Exception {              
      // Creating a PdfWriter object
      String file = "C:/itextExamples/addingObjects.pdf";       
      PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));                   
      
      // Creating a Document object       
      Document doc = new Document(pdfDoc);               
      
      // Creating a table       
      float [] pointColumnWidths = {300F, 300F};       
      Table table = new Table(pointColumnWidths);                            
      
      // Adding row 1 to the table                
      Cell c1 = new Cell();       
      c1.add("Java Related Tutorials");       
      c1.setTextAlignment(TextAlignment.LEFT);       
      table.addCell(c1);                      
      
      List list1 = new List();       
      ListItem item1 = new ListItem("JavaFX");
      ListItem item2 = new ListItem("Java");       
      ListItem item3 = new ListItem("Java Servlets");              
      list1.add(item1);       
      list1.add(item2);       
      list1.add(item3);                 
      
      Cell c2 = new Cell();       
      c2.add(list1);       
      c2.setTextAlignment(TextAlignment.LEFT);       
      table.addCell(c2);                 
      
      // Adding row 2 to the table                
      Cell c3 = new Cell();       
      c3.add("No SQL Databases");       
      c3.setTextAlignment(TextAlignment.LEFT);       
      table.addCell(c3);                     
      
      List list2 = new List();       
      list2.add(new ListItem("HBase"));       
      list2.add(new ListItem("Neo4j"));       
      list2.add(new ListItem("MongoDB"));                 
      
      Cell c4 = new Cell();       
      c4.add(list2); 
      c4.setTextAlignment(TextAlignment.LEFT);       
      table.addCell(c4);                       
      
      // Adding Table to document        
      doc.add(table);                  
      
      // Closing the document       
      doc.close();  
      System.out.println("Lists added to table 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 AddingListsToTable.java 
java AddingListsToTable

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

Lists added to table 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.

Trong chương này, chúng ta sẽ xem cách thêm hình ảnh vào tài liệu PDF bằng thư viện iText.

Thêm hình ảnh vào 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ố, đối với phương thức khởi tạo của nó. Để thêm hình ảnh vào PDF, hãy tạo một đối tượng hình ảnh được yêu cầu thêm và thêm nó bằng cách sử dụngadd() phương pháp của Document lớp học.

Sau đây là các bước để thêm hình ảnh vào 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/addingImage.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 thức 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 đượ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 đối tượng Hình ảnh

Để tạo image , trước hết, hãy tạo một ImageData đối tượng sử dụng create() phương pháp của ImageDataFactorylớp học. Là một tham số của phương thức này, hãy chuyển một tham số chuỗi đại diện cho đường dẫn của hình ảnh, như được hiển thị bên dưới.

// Creating an ImageData object 
String imageFile = "C:/itextExamples/javafxLogo.jpg"; 
ImageData data = ImageDataFactory.create(imageFile);

Bây giờ, khởi tạo Image lớp của com.itextpdf.layout.elementgói hàng. Trong khi khởi tạo, vượt qua phần trên đã tạoImageData đối tượng như một tham số cho phương thức khởi tạo của nó, như được hiển thị bên dưới.

// Creating an Image object 
Image img = new Image(data);

Bước 5: Thêm hình ảnh vào tài liệu

Thêm đối tượng hình ảnh đã tạo ở bước trước bằng cách sử dụng add() phương pháp của Document lớp, như hình dưới đây.

// Adding image to the document 
document.add(img);

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 thêm hình ảnh vào 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ênaddingImage.pdf, thêm hình ảnh vào nó và lưu nó vào đường dẫn C:/itextExamples/.

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

import com.itextpdf.io.image.ImageData; 
import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter;

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Image;  

public class AddingImage {      
   public static void main(String args[]) throws Exception {              
      
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/addingImage.pdf";       
      PdfWriter writer = new PdfWriter(dest);        
      
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdf);              
      
      // Creating an ImageData object       
      String imFile = "C:/itextExamples/logo.jpg";       
      ImageData data = ImageDataFactory.create(imFile);              
      
      // Creating an Image object        
      Image image = new Image(data);                        
      
      // Adding image to the document       
      document.add(image);              
      
      // Closing the document       
      document.close();              
      
      System.out.println("Image added");    
   } 
}

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

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

Image added

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.

Trong chương này, chúng ta sẽ xem cách đặt vị trí của hình ảnh trong tài liệu PDF bằng thư viện iText.

Đặt vị trí của hình ảnh

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 hình ảnh vào pdf, hãy tạo và một đối tượng của hình ảnh được yêu cầu thêm và thêm nó bằng cách sử dụng add() phương pháp của Documentlớp học. Bạn có thể chèn hình ảnh vào vị trí mong muốn trên tài liệu bằng phương phápsetFixedPosition() sau đó Image lớp học.

Sau đây là các bước để đặt vị trí của hình ảnh 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/positionOfImage.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 thức 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 đượ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 đối tượng Hình ảnh

Để tạo đối tượng hình ảnh, trước hết, hãy tạo một ImageData đối tượng sử dụng create() phương pháp của ImageDataFactorylớp học. Là một tham số của phương thức này, hãy chuyển một tham số chuỗi đại diện cho đường dẫn của hình ảnh, như được hiển thị bên dưới.

// Creating an ImageData object 
String imageFile = "C:/itextExamples/javafxLogo.jpg"; 
ImageData data = ImageDataFactory.create(imageFile);

Bây giờ, khởi tạo Image lớp của com.itextpdf.layout.elementgói hàng. Trong khi khởi tạo, hãy vượt quaImageData đối tượng như một tham số cho phương thức khởi tạo của nó, như được hiển thị bên dưới.

// Creating an Image object 
Image img = new Image(data);

Bước 5: Đặt vị trí của hình ảnh

Bạn có thể đặt vị trí của hình ảnh trong tài liệu PDF bằng cách sử dụng setFixedPosition()phương pháp của Hình ảnh. Đặt vị trí của hình ảnh thành tọa độ (100, 250) trên tài liệu bằng phương pháp này, như được hiển thị bên dưới.

// Setting the position of the image to the center of the page 
image.setFixedPosition(100, 250);

Bước 6: Thêm hình ảnh vào tài liệu

Bây giờ, thêm đối tượng hình ảnh, đã tạo ở bước trước, sử dụng add() phương pháp của Document lớp, như hình dưới đây.

// Adding image to the document 
document.add(img);

Bước 7: Đó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 hình ảnh ở vị trí mong muốn trên 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ênpositionOfImage.pdf, thêm một hình ảnh vào nó, đặt nó gần giữa trang và lưu nó trong đường dẫn C:/itextExamples/

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

import com.itextpdf.io.image.ImageData; 
import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Image;  

public class SettingPosition {      
   public static void main(String args[]) throws Exception {              
      // Creating a PdfWriter       
      String dest = "C:/EXAMPLES/itextExamples/3images/positionOfImage.pdf";       
      PdfWriter writer = new PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdfDoc = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdfDoc);              
      
      // Creating an ImageData object       
      String imFile = "C:/EXAMPLES/itextExamples/3images/logo.jpg";       
      ImageData data = ImageDataFactory.create(imFile);             

      // Creating an Image object        
      Image image = new Image(data);                
      
      // Setting the position of the image to the center of the page       
      image.setFixedPosition(100, 250);                  
      
      // Adding image to the document       
      document.add(image);              
      
      // Closing the document       
      document.close();
      
      System.out.println("Image added");    
   } 
}

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

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

Image added

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ư hình bên dưới.

Trong chương này, chúng ta sẽ xem cách chia tỷ lệ hình ảnh trong tài liệu PDF bằng thư viện iText.

Chia tỷ lệ hình ảnh 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 hình ảnh vào PDF, hãy tạo một đối tượng hình ảnh được yêu cầu thêm và thêm nó bằng cách sử dụng add() phương pháp của Documentlớp học. Bạn có thể chia tỷ lệ hình ảnh bằng cách sử dụngsetAutoScale() phương pháp.

Sau đây là các bước để chia tỷ lệ hình ảnh tồn tại 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/autoScale.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 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 thức 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 đượ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 đối tượng Hình ảnh

Để tạo một đối tượng hình ảnh, trước hết, hãy tạo một ImageData đối tượng sử dụng create() phương pháp của ImageDataFactorylớp học. Là một tham số của phương thức này, hãy chuyển một tham số chuỗi đại diện cho đường dẫn của hình ảnh, như được hiển thị bên dưới.

// Creating an ImageData object 
String imageFile = "C:/itextExamples/javafxLogo.jpg"; 
ImageData data = ImageDataFactory.create(imageFile);

Bây giờ, khởi tạo Image lớp của com.itextpdf.layout.elementgói hàng. Trong khi khởi tạo, hãy vượt quaImageData đối tượng như một tham số cho phương thức khởi tạo của nó, như được hiển thị bên dưới.

// Creating an Image object 
Image img = new Image(data);

Bước 5: Chia tỷ lệ hình ảnh

Bạn có thể chia tỷ lệ hình ảnh bằng cách sử dụng setAutoScale() phương pháp.

// Setting the position of the image to the center of the page 
image.setFixedPosition(100, 250);

Bước 6: Thêm hình ảnh vào tài liệu

Bây giờ, hãy thêm image đối tượng được tạo ở bước trước bằng cách sử dụng add() phương pháp của Document lớp, như hình dưới đây.

// Adding image to the document 
document.add(img);

Bước 7: Đó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 chia tỷ lệ hình ảnh tương ứng với kích thước tài liệu trên 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ênautoScale.pdf, thêm một hình ảnh vào nó, chia tỷ lệ nó theo kích thước trang, lưu nó trong đường dẫn C:/itextExamples/.

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

import com.itextpdf.io.image.ImageData; 
import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Image;  

public class SettingAutoScale {      
   public static void main(String args[]) throws Exception{              
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/positionOfImage.pdf";       
      PdfWriter writer = new PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdfDoc = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdfDoc);              
      
      // Creating an ImageData object       
      String imFile = "C:/itextExamples/logo.jpg";       
      ImageData data = ImageDataFactory.create(imFile);              
      
      // Creating an Image object        
      Image image = new Image(data);                
      
      // Setting the position of the image to the center of the page       
      image.setFixedPosition(100,250); 
      
      // Adding image to the document       
      document.add(image);              
      
      // Closing the document       
      document.close();
      System.out.println("Image Scaled");    
   } 
}

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

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

Image Scaled

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ư hình bên dưới.

Trong chương này, chúng ta sẽ xem cách chèn một hình ảnh trong tài liệu PDF và cách xoay hình ảnh đó, sử dụng các chức năng có sẵn trong thư viện iText.

Xoay hình ảnh 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 hình ảnh vào PDF, hãy tạo một đối tượng hình ảnh được yêu cầu thêm và thêm nó bằng cách sử dụng add() phương pháp của Documentlớp học. Bạn có thể xoay hình ảnh bằng cách sử dụngsetRotationAngle() phương pháp.

Sau đây là các bước để xoay hình ảnh 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/rotatingImage.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ớ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 thức 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 đượ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 đối tượng Hình ảnh

Để tạo một đối tượng hình ảnh, trước hết, hãy tạo một ImageData đối tượng sử dụng create()phương pháp của ImageDataFactorylớp học. Là một tham số của phương thức này, hãy chuyển một tham số chuỗi đại diện cho đường dẫn của hình ảnh, như được hiển thị bên dưới.

// Creating an ImageData object 
String imageFile = "C:/itextExamples/javafxLogo.jpg"; 
ImageData data = ImageDataFactory.create(imageFile);

Bây giờ, khởi tạo Image lớp của com.itextpdf.layout.elementgói hàng. Trong khi khởi tạo, hãy vượt quaImageData object, như một tham số cho hàm tạo của nó, như được hiển thị bên dưới.

// Creating an Image object 
Image img = new Image(data);

Bước 5: Xoay hình ảnh

Bạn có thể xoay hình ảnh bằng cách sử dụng setRotationAngle()phương pháp. Đối với phương pháp này, bạn cần chuyển một số nguyên đại diện cho góc quay mà bạn muốn xoay hình ảnh.

// Rotating the image 
image.setRotationAngle(45);

Bước 6: Thêm hình ảnh vào tài liệu

Bây giờ, thêm đối tượng hình ảnh đã tạo ở bước trước bằng cách sử dụng add() phương pháp của Document lớp, như hình dưới đây.

// Adding image to the document 
document.add(img);

Bước 7: Đó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 xoay hình ảnh theo một góc nhất định trên 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ên rotatingImage.pdf, thêm hình ảnh vào nó, xoay nó và lưu nó vào đường dẫn C:/itextExamples/.

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

import com.itextpdf.io.image.ImageData; 
import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Image;  

public class RotatingImage {    
   public static void main(String args[]) throws Exception {              
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/rotatingImage.pdf";       
      PdfWriter writer = new PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdfDoc = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdfDoc);              
      
      // Creating an ImageData object       
      String imFile = "C:/itextExamples/logo.jpg";       
      ImageData data = ImageDataFactory.create(imFile);              
      
      // Creating an Image object        
      Image image = new Image(data);                
      
      // Rotating the image       
      image.setRotationAngle(45);                       
      
      // Adding image to the document       
      document.add(image);              
      
      // Closing the document       
      document.close(); 
      
      System.out.println("Image rotated");    
   } 
}

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

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

Image Rotated

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ư hình bên dưới.

Trong chương này, chúng ta sẽ xem cách thêm chú thích văn bản vào tài liệu PDF bằng thư viện iText.

Tạo chú thích 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ó.

Để sử dụng chú thích văn bản trong tài liệu PDF của bạn, bạn cần tạo một đối tượng PdfTextAnnotation và thêm nó vào PdfPage.

Sau đây là các bước để sử dụng chú thích 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/textAnnotation.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 PdfDocument lớp bằng cách vượt qua PdfWriter đối tượng với hàm 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 thức 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ớpPdfDocument.

Khởi tạo Document lớp bằng cách truyề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 đối tượng PdfAnnotation

Các PdfAnnotation lớp của gói com.itextpdf.kernel.pdf.annot đại diện cho lớp cha của tất cả các chú thích.

Trong số các lớp dẫn xuất của nó, PdfTextAnnotationlớp đại diện cho chú thích văn bản. Tạo một đối tượng của lớp này như hình dưới đây.

// Creating PdfAnnotation 
Rectangle rect = new Rectangle(20, 800, 0, 0); 
PdfAnnotation ann = new PdfTextAnnotation(rect);

Bước 5: Đặt màu cho chú thích

Đặt màu cho chú thích bằng cách sử dụng setColor() phương pháp của PdfAnnotationlớp học. Đối với phương pháp này, hãy chuyểncolor đối tượng đại diện cho màu của chú thích dưới dạng tham số.

// Setting color to the annotation 
ann.setColor(Color.GREEN);

Bước 6: Đặt tiêu đề và nội dung của chú thích

Đặt tiêu đề và nội dung của chú thích bằng cách sử dụng setTitle()setContents() phương pháp của PdfAnnotation lớp tương ứng, như hình dưới đây.

// Setting title to the annotation 
ann.setTitle(new PdfString("Hello"));        

// Setting contents of the annotation 
ann.setContents("Hi welcome to Tutorialspoint.");

Bước 7: Thêm chú thích vào trang

Tạo một cái mới PdfPage lớp học sử dụng addNewPage() của lớp PdfDocument và thêm chú thích ở trên bằng cách sử dụng addAnnotation() phương pháp của PdfPage lớp, như hình dưới đây.

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

// Adding annotation to a page in a PDF 
page.addAnnotation(ann);

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 thêm chú thích văn bản vào 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êntextAnnotation.pdf, thêm chú thích văn bản vào nó và lưu nó trong đường dẫn C:/itextExamples/

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

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfString; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.annot.PdfAnnotation; 
import com.itextpdf.kernel.pdf.annot.PdfTextAnnotation; 
import com.itextpdf.layout.Document;  

public class TextAnnotation {    
   public static void main(String args[]) throws Exception {        
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/textAnnotation.pdf";       
      PdfWriter writer = new PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);               
      
      // Creating a Document        
      Document document = new Document(pdf);             
      
      // Creating PdfTextAnnotation object
      Rectangle rect = new Rectangle(20, 800, 0, 0);       
      PdfAnnotation ann = new PdfTextAnnotation(rect);              
      
      // Setting color to the annotation
      ann.setColor(Color.GREEN);              
      
      // Setting title to the annotation 
      ann.setTitle(new PdfString("Hello"));              
      
      // Setting contents of the annotation       
      ann.setContents("Hi welcome to Tutorialspoint.");              
      
      // Creating a new page       
      PdfPage page =  pdf.addNewPage();              
      
      // Adding annotation to a page in a PDF
      page.addAnnotation(ann);

      // Closing the document       
      document.close();       
      
      System.out.println("Annotation added 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 TextAnnotation.java 
java TextAnnotation

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

Annotation added 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.

Trong chương này, chúng ta sẽ xem cách thêm chú thích liên kết vào tài liệu PDF bằng thư viện iText.

Tạo chú thích liên kết 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ó.

Để sử dụng chú thích văn bản trong tài liệu PDF của bạn, bạn cần tạo một đối tượng của lớp PdfTextAnnotation và thêm đối tượng này vào PdfPage.

Sau đây là các bước để sử dụng chú thích 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 PdfWriter lớp 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/linkAnnotation.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 PdfWriter đối tượng với hàm 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 thức 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ớpPdfDocument.

Khởi tạo Document lớp bằng cách chuyển đối tượng của lớp PdfDocument đã 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 đối tượng PdfAnnotation

Các PdfAnnotation lớp của gói com.itextpdf.kernel.pdf.annot đại diện cho lớp cha của tất cả các chú thích.

Trong số các lớp dẫn xuất của nó, PdfLinkAnnotationlớp đại diện cho chú thích liên kết. Tạo một đối tượng của lớp này, như hình dưới đây.

// Creating a PdfLinkAnnotation object 
Rectangle rect = new Rectangle(0, 0); 
PdfLinkAnnotation annotation = new PdfLinkAnnotation(rect);

Bước 5: Thiết lập hoạt động của chú thích

Đặt hành động cho chú thích bằng cách sử dụng setAction() phương pháp của PdfLinkAnnotation lớp, như hình dưới đây.

// Setting action of the annotation 
PdfAction action = PdfAction.createURI("http: // www.tutorialspoint.com/"); 
annotation.setAction(action);

Bước 6: Tạo liên kết

Tạo liên kết bằng cách khởi tạo Link lớp của gói com.itextpdf.layout.element, như hình dưới đây.

// Creating a link 
Link link = new Link("Click here", annotation);

Bước 7: Thêm chú thích liên kết vào một đoạn văn

Tạo một đoạn văn mới bằng cách khởi tạo Paragraph và thêm liên kết đã tạo ở bước trước bằng cách sử dụng add() phương thức của lớp này, như được hiển thị bên dưới.

// Creating a paragraph 
Paragraph paragraph = new Paragraph("Hi welcome to Tutorialspoint ");        

// Adding link to paragraph 
paragraph.add(link.setUnderline());

Bước 8: 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.

// Adding paragraph to document 
document.add(paragraph);

Bước 9: Đó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 thêm chú thích liên kết vào 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ên linkAnnotation.pdf, thêm chú thích liên kết vào nó và lưu nó trong đường dẫn C:/itextExamples/

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

import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.action.PdfAction; 
import com.itextpdf.kernel.pdf.annot.PdfLinkAnnotation; 

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

public class LinkAnnotation {      
   public static void main(String args[]) throws Exception {             
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/linkAnnotation.pdf";       
      
      PdfWriter writer = new 
      PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);               
      
      // Creating a Document
      Document document = new Document(pdf);              
      
      // Creating a PdfLinkAnnotation object       
      Rectangle rect = new Rectangle(0, 0);       
      PdfLinkAnnotation annotation = new PdfLinkAnnotation(rect);              
      
      // Setting action of the annotation       
      PdfAction action = PdfAction.createURI("http:// www.tutorialspoint.com/");       
      annotation.setAction(action);             
      
      // Creating a link       
      Link link = new Link("Click here", annotation);              
      
      // Creating a paragraph       
      Paragraph paragraph = new Paragraph("Hi welcome to Tutorialspoint ");              
      
      // Adding link to paragraph       
      paragraph.add(link.setUnderline());              
      
      // Adding paragraph to document       
      document.add(paragraph);             

      // Closing the document       
      document.close();              
      
      System.out.println("Annotation added 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 LinkAnnotation.java 
java LinkAnnotation

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

Annotation added 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.

Trong chương này, chúng ta sẽ xem cách thêm chú thích dòng vào tài liệu PDF bằng thư viện iText.

Tạo chú thích dòng 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ố, đối với phương thức khởi tạo của nó.

Để sử dụng chú thích văn bản trong tài liệu PDF của bạn, bạn cần tạo một đối tượng PdfTextAnnotation và thêm nó vào PdfPage.

Sau đây là các bước để sử dụng chú thích 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, tới 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/lineAnnotation.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 PdfDocumentclass là lớp đại diện cho PDFDocument 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, trình xử lý sự kiện bằng cách sử dụng các phương thức 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ớpPdfDocument.

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 đối tượng PdfAnnotation

Các PdfAnnotation lớp của gói com.itextpdf.kernel.pdf.annot đại diện là lớp cha của tất cả các chú thích.

Trong số các lớp dẫn xuất của nó, PdfLineAnnotationlớp đại diện cho chú thích dòng. Tạo một đối tượng của lớp này như hình dưới đây.

// Creating PdfAnnotation 
Rectangle rect = new Rectangle(20, 800, 0, 0); 
PdfAnnotation annotation = new PdfLineAnnotation(rect);

Bước 5: Đặt màu cho chú thích

Đặt màu cho chú thích bằng cách sử dụng setColor() phương pháp của PdfAnnotationlớp học. Đối với phương thức này, hãy chuyển đối tượng màu đại diện cho màu của chú thích dưới dạng tham số.

// Setting color to the annotation 
annotation.setColor(Color.BLUE);

Bước 6: Đặt tiêu đề và nội dung của chú thích

Đặt tiêu đề và nội dung của chú thích bằng cách sử dụng setTitle()setContents() phương pháp của PdfAnnotation lớp tương ứng, như hình dưới đây.

// Setting title to the PdfLineAnnotation 
annotation.setTitle(new PdfString("iText"));        

// Setting contents of the PdfLineAnnotation 
annotation.setContents("Hi welcome to Tutorialspoint");

Bước 7: Thêm chú thích vào trang

Tạo một cái mới PdfPage lớp học sử dụng addNewPage() phương pháp của PdfDocument và thêm chú thích đã tạo ở trên bằng phương thức addAnnotation () của lớp PdfPage, như hình dưới đây.

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

// Adding annotation to a page in a PDF 
page.addAnnotation(annotation);

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 thêm chú thích dòng vào 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ênlineAnnotation.pdf, thêm chú thích dòng vào nó và lưu nó trong đường dẫn C:/itextExamples/.

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

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfString; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.annot.PdfAnnotation; 
import com.itextpdf.kernel.pdf.annot.PdfLineAnnotation; 
import com.itextpdf.layout.Document;  

public class LineAnnotation {
   public static void main(String args[]) throws Exception {             
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/lineAnnotations.pdf";       
      PdfWriter writer = new PdfWriter(dest);               

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

      // Creating a Document        
      Document document = new Document(pdf);              
      
      // Creating a PdfPage       
      PdfPage page = pdf.addNewPage();              

      // creating PdfLineAnnotation object       
      Rectangle rect = new Rectangle(0, 0);
      float[] floatArray  = new float[]{
         20, 790, page.getPageSize().getWidth() - 20, 790
      };
      PdfAnnotation annotation = new PdfLineAnnotation(rect, floatArray);              
      
      // Setting color of the PdfLineAnnotation       
      annotation.setColor(Color.BLUE);              
      
      // Setting title to the PdfLineAnnotation       
      annotation.setTitle(new PdfString("iText"));              
      
      // Setting contents of the PdfLineAnnotation       
      annotation.setContents("Hi welcome to Tutorialspoint");              
      
      // Adding annotation to the page       
      page.addAnnotation(annotation);               
      
      // Closing the document       
      document.close();              
      
      System.out.println("Annotation added 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 LineAnnotation.java 
java LineAnnotation

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

Annotation added 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ư hình bên dưới.

Trong chương này, chúng ta sẽ xem cách thêm chú thích đánh dấu văn bản vào tài liệu PDF bằng thư viện iText.

Tạo chú thích đánh dấu 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ó. Để sử dụng chú thích văn bản trong tài liệu PDF, bạn cần tạo một đối tượngPdfTextAnnotation và thêm nó vào PdfPage.

Sau đây là các bước để sử dụng chú thích 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/markupAnnotation.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ớ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 thức 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ớpPdfDocument.

Khởi tạo Document lớp bằng cách truyề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 đối tượng PdfAnnotation

Các PdfAnnotation lớp của gói com.itextpdf.kernel.pdf.annot đại diện cho lớp cha của tất cả các chú thích.

Trong số các lớp dẫn xuất của nó, PdfTextMarkupAnnotationlớp đại diện cho chú thích đánh dấu văn bản. Tạo một đối tượng của lớp này như hình dưới đây.

// Creating a PdfTextMarkupAnnotation object 
Rectangle rect = new Rectangle(105, 790, 64, 10); 
float[] floatArray = new float[]{169, 790, 105, 790, 169, 800, 105, 800};
PdfAnnotation annotation = PdfTextMarkupAnnotation.createHighLight(rect,floatArray);

Bước 5: Đặt màu cho chú thích

Đặt màu cho chú thích bằng cách sử dụng setColor() phương pháp của PdfAnnotationlớp học. Đối với phương pháp này, chuyển đối tượng màu đại diện chocolor của chú thích dưới dạng một tham số.

// Setting color to the annotation 
annotation.setColor(Color.YELLOW);

Bước 6: Đặt tiêu đề và nội dung của chú thích

Đặt tiêu đề và nội dung của chú thích bằng cách sử dụng setTitle()setContents() phương pháp của PdfAnnotation lớp tương ứng.

// Setting title to the annotation 
annotation.setTitle(new PdfString("Hello!"));        

// Setting contents to the annotation 
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));

Bước 7: Thêm chú thích vào trang

Tạo một cái mới PdfPage lớp học sử dụng addNewPage() phương pháp của PdfDocument và thêm chú thích đã tạo ở trên bằng cách sử dụng addAnnotation() phương thức của lớp PdfPage, như hình dưới đây.

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

// Adding annotation to a page in a PDF 
pdfPage.addAnnotation(annotation);

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 thêm chú thích đánh dấu văn bản vào 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ênmarkupAnnotation.pdf, thêm chú thích đánh dấu văn bản vào nó và lưu nó trong đường dẫn C:/itextExamples/

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

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfString; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.annot.PdfAnnotation; 
import com.itextpdf.kernel.pdf.annot.PdfTextMarkupAnnotation;
import com.itextpdf.layout.Document;  

public class MarkupAnnotation {    
   public static void main(String args[]) throws Exception {   
      // Creating a PdfDocument object       
      String file = "C:/itextExamples/markupAnnotation.pdf";        
      PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));                   
   
      // Creating a Document object       
      Document doc = new Document(pdfDoc);                      
      
      // Creating a PdfTextMarkupAnnotation object       
      Rectangle rect = new Rectangle(105, 790, 64, 10);       
      float[] floatArray = new float[]{169, 790, 105, 790, 169, 800, 105, 800};
      PdfAnnotation annotation = 
         PdfTextMarkupAnnotation.createHighLight(rect,floatArray);
      
      // Setting color to the annotation       
      annotation.setColor(Color.YELLOW);              
      
      // Setting title to the annotation       
      annotation.setTitle(new PdfString("Hello!"));
      
      // Setting contents to the annotation       
      annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));
      
      // Creating a new Pdfpage
      PdfPage pdfPage = pdfDoc.addNewPage();
      
      // Adding annotation to a page in a PDF       
      pdfPage.addAnnotation(annotation);
      
      // Closing the document
      doc.close();  
      
      System.out.println("Annotation added 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 MarkupAnnotation.java 
java MarkupAnnotation

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

Annotation added 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ư hình bên dưới.

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

Tạo chú thích vòng kết nối 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ó.

Để sử dụng chú thích văn bản trong tài liệu PDF của bạn, bạn cần tạo một đối tượng của lớp PdfTextAnnotation và thêm đối tượng này vào Pdfpage.

Sau đây là các bước để sử dụng chú thích 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 PdfWriter lớp 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/circleAnnotation.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ớ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 thức 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 đượ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 đối tượng PdfAnnotation

Các PdfAnnotation lớp của gói com.itextpdf.kernel.pdf.annot đại diện cho lớp cha của tất cả các chú thích.

Trong số các lớp dẫn xuất của nó, PdfCircleAnnotationlớp đại diện cho chú thích vòng tròn. Tạo một đối tượng của lớp này như hình dưới đây.

// Creating a PdfCircleAnnotation object Rectangle 
rect = new Rectangle(150, 770, 50, 50); 
PdfAnnotation annotation = new PdfCircleAnnotation(rect);

Bước 5: Đặt màu cho chú thích

Đặt màu cho chú thích bằng cách sử dụng setColor() phương pháp của PdfAnnotationlớp học. Đối với phương thức này, hãy chuyển đối tượng màu đại diện cho màu của chú thích dưới dạng tham số.

// Setting color to the annotation 
annotation.setColor(Color.YELLOW);

Bước 6: Đặt tiêu đề và nội dung của chú thích

Đặt tiêu đề và nội dung của chú thích bằng cách sử dụng setTitle()setContents() phương pháp của PdfAnnotation lớp tương ứng.

// Setting title to the annotation 
annotation.setTitle(new PdfString("circle annotation"));        

// Setting contents of the annotation 
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));

Bước 7: Thêm chú thích vào trang

Tạo một cái mới PdfPage lớp học sử dụng addNewPage() phương pháp của PdfDocument và thêm chú thích đã tạo ở trên bằng cách sử dụng addAnnotation() phương thức của lớp PdfPage, như hình dưới đây.

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

// Adding annotation to a page in a PDF 
page.addAnnotation(ann);

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 thêm chú thích vòng tròn vào 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êncircleAnnotation.pdf, thêm chú thích vòng kết nối vào nó và lưu nó trong đường dẫn C:/itextExamples/

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

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfString; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.annot.PdfAnnotation; 
import com.itextpdf.kernel.pdf.annot.PdfCircleAnnotation; 
import com.itextpdf.layout.Document;  

public class CircleAnnotation {    
   public static void main(String args[]) throws Exception {   
      // Creating a PdfDocument object       
      String file = "C:/itextExamples// circleAnnotation.pdf";             
      PdfDocument pdf = new PdfDocument(new PdfWriter(file));                   
   
      // Creating a Document object       
      Document doc = new Document(pdf);                      
   
      // Creating a PdfCircleAnnotation object       
      Rectangle rect = new Rectangle(150, 770, 50, 50);       
      PdfAnnotation annotation = new PdfCircleAnnotation(rect);              
   
      // Setting color to the annotation       
      annotation.setColor(Color.YELLOW);              
   
      // Setting title to the annotation       
      annotation.setTitle(new PdfString("circle annotation"));              
   
      // Setting contents of the annotation 
      annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));             
      
      // Creating a new page        
      PdfPage page = pdf.addNewPage();              
      
      // Adding annotation to a page in a PDF       
      page.addAnnotation(annotation);                       
      
      // Closing the document       
      doc.close();  
      
      System.out.println("Annotation added 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 PdfCircleAnnotation.java 
java PdfCircleAnnotation

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

Annotation added 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.

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

Vẽ vòng cung 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 vòng cung trên PdfDocument, hãy khởi tạo PdfCanvas lớp của gói com.itextpdf.kernel.pdf.canvas và tạo một vòng cung bằng cách sử dụng arc() phương thức của lớp này.

Sau đây là các bước để vẽ một vòng cung 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/drawingArc.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Khi đối tượng của 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ớ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 thức 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 được 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ẽ vòng cung

Vẽ vòng cung bằng cách sử dụng arc() phương pháp của Canvas và điền nó bằng cách sử dụng fill() như hình dưới đây.

// Drawing an arc 
canvas.arc(50, 50, 300, 545, 0, 360);   

// Filling the arc 
canvas.fill();

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 cung tròn 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ên drawingArc.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 DrawingArc.java.

import com.itextpdf.kernel.color.Color; 
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 DrawingArc {
   public static void main(String args[]) throws Exception {
      // Creating a PdfWriter
      String dest = "C:/itextExamples/drawingArc.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);

      // Drawing an arc
      canvas.arc(50, 50, 300, 545, 0, 360);

      // Filling the arc
      canvas.fill();              

      // 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 DrawingArc.java 
java DrawingArc

Khi thực hiện, chương trình trên sẽ 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.

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ố, đối với 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 thức 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 được 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 sẽ 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.

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

Vẽ một vòng tròn 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 vòng tròn trên PdfDocument, hãy khởi tạo PdfCanvas lớp của gói com.itextpdf.kernel.pdf.canvas và gọi circle() phương thức của lớp này.

Sau đây là các bước để vẽ một vòng tròn 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/drawingCircle.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 đến 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 thức 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 đượ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 đố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 PdfDocumentlớp học. Khởi tạoPdfCanvas đối tượng của gói com.itextpdf.kernel.pdf.canvas bằng cách vượt qua 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 Đặt màu

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

// Setting color to the circle 
Color color = Color.GREEN; 
canvas.setColor(color, true);

Bước 6: Vẽ vòng tròn

Vẽ một vòng tròn bằng cách gọi circle() phương pháp của Canvas, như hình dưới đây.

// creating a circle 
canvas.circle(300, 400, 200);

Bước 7: Đó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 vòng tròn trên 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êndrawingCircle.pdf, vẽ một vòng tròn trong đó và lưu nó vào đường dẫn C:/itextExamples/

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

import com.itextpdf.kernel.color.Color; 
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 DrawingCircle {      
   public static void main(String args[]) throws Exception {           
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/drawingCircle.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);  
      
      // Setting color to the circle
      Color color = Color.GREEN;       
      canvas.setColor(color, true);              
      
      // creating a circle
      canvas.circle(300, 400, 200);
      
      // Filling the circle       
      canvas.fill();             
      
      // 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 DrawingCircle.java 
java DrawingCircle

Khi thực hiện, chương trình trên sẽ 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.

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 thức 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 hiện, 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.

Trong chương này, chúng ta sẽ xem cách chia tỷ lệ hình ảnh trên tài liệu PDF bằng thư viện iText.

Thu nhỏ nội dung trong PDF

Sau đây là các bước để thu nhỏ nội dung của trang PDF bằng thư viện iText.

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

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 object 
String dest = "C:/itextExamples/shrinking.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Để đọc dữ liệu từ một pdf hiện có, hãy tạo PdfReader đối tượng như hình dưới đây.

// Creating a PdfReader 
String src = "C:/itextExamples/pdfWithImage.pdf"; 
PdfReader reader = new PdfReader(src);

Bước 2: Tạo (các) đố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ó.

Tạo tài liệu PDF nguồn và đích bằng cách chuyển PdfWriterPdfReader đối tượng của các hàm tạo, như được hiển thị bên dưới.

// Creating a PdfDocument objects 
PdfDocument destpdf = new PdfDocument(writer);         
PdfDocument srcPdf = new PdfDocument(reader);

Bước 3: Mở một trang từ tệp PDF hiện có

Lấy một trang từ PDF nguồn bằng cách sử dụng getPage() phương pháp của PdfPagelớp học. Sử dụng đối tượng này, lấy kích thước của trang của tài liệu nguồn, như hình dưới đây.

// Opening a page from the existing PDF 
PdfPage origPage = srcPdf.getPage(1);       

// Getting the page size 
Rectangle orig = origPage.getPageSizeWithRotation();

Bước 4: Thu nhỏ nội dung của pdf nguồn

Sử dụng getScaleInstance() phương pháp của AffineTransform lớp, thu nhỏ nội dung của một trang của tài liệu nguồn, như được hiển thị bên dưới.

// Shrink original page content using transformation matrix 
AffineTransform transformationMatrix = AffineTransform.getScaleInstance(    
   page.getPageSize().getWidth()/ orig.getWidth()/2,    
   page.getPageSize().getHeight()/ orig.getHeight()/2);

Bước 5: Sao chép trang

Nối các affine transform matrix, được tạo ở bước trước, thành ma trận của canvas đối tượng của tài liệu PDF đích, như được hiển thị bên dưới.

// Concatenating the affine transform matrix to the current matrix 
PdfCanvas canvas = new PdfCanvas(page);       
canvas.concatMatrix(transformationMatrix);

Bây giờ, hãy thêm bản sao trang vào canvas đối tượng của PDF đích đến tài liệu nguồn, như được hiển thị bên dưới.

// Add the object to the canvas 
PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf); 
canvas.addXObject(pageCopy, 0, 0);

Bước 6: 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, như hình dưới đây.

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

Bước 7: Đó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 thu nhỏ nội dung của trang PDF bằng thư viện iText. Nó tạo ra một tài liệu PDF với tênshrinkingPDF.pdf, thu nhỏ hình ảnh trong pdf và lưu nó trong đường dẫn C:/itextExamples/

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

import com.itextpdf.kernel.geom.AffineTransform; 
import com.itextpdf.kernel.geom.Rectangle; 

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

import com.itextpdf.kernel.pdf.xobject.PdfFormXObject; 
import com.itextpdf.layout.Document;  

public class ShrinkPDF {    
   public static void main(String args[]) throws Exception {
      // Creating a PdfWriter object
      String dest = "C:/itextExamples/shrinking.pdf";
      PdfWriter writer = new PdfWriter(dest);
      
      // Creating a PdfReader
      String src = "C:/itextExamples/pdfWithImage.pdf";
      PdfReader reader = new PdfReader(src);
      
      // Creating a PdfDocument objects
      PdfDocument destpdf = new PdfDocument(writer);
      PdfDocument srcPdf = new PdfDocument(reader);
         
      // Opening a page from the existing PDF 
      PdfPage origPage = srcPdf.getPage(1);
         
      // Getting the page size
      Rectangle orig = origPage.getPageSizeWithRotation();
         
      // Adding a page to destination Pdf
      PdfPage page = destpdf.addNewPage();
         
      // Scaling the image in a Pdf page     
      AffineTransform transformationMatrix = AffineTransform.getScaleInstance(
         page.getPageSize().getWidth()/orig.getWidth()/2,
         page.getPageSize().getHeight()/ orig.getHeight()/2);
      
      // Shrink original page content using transformation matrix
      PdfCanvas canvas = new PdfCanvas(page);
      canvas.concatMatrix(transformationMatrix);
      
      // Add the object to the canvas
      PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf);
      canvas.addXObject(pageCopy, 0, 0);
      
      // Creating a Document object
      Document doc = new Document(destpdf);
      
      // Closing the document
      doc.close();
      
      System.out.println("Table created 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 ShrinkingPDF.java 
java ShrinkingPDF

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

Table created 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ư hình bên dưới.

Chương trình Java sau đây trình bày cách xếp nội dung của một trang PDF sang các trang khác nhau bằng thư viện iText. Nó tạo ra một tài liệu PDF với têntilingPdfPages.pdf và lưu nó trong đường dẫn C:/itextExamples/.

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

import com.itextpdf.kernel.geom.AffineTransform; 
import com.itextpdf.kernel.geom.PageSize; 
import com.itextpdf.kernel.geom.Rectangle; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfReader; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.canvas.PdfCanvas; 
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;  

public class TilingPDFPages {      
   public static void main(String args[]) throws Exception {             
      // Creating a PdfWriter object       
      String dest = "C:/itextExamples/tilingPdfPages.pdf";       
      PdfWriter writer = new PdfWriter(dest);               
      
      // Creating a PdfReader       
      String src = "C:/itextExamples/pdfWithImage.pdf";       
      PdfReader reader = new PdfReader(src);        
      
      // Creating a PdfDocument objects       
      PdfDocument destpdf = new PdfDocument(writer);               
      PdfDocument srcPdf = new PdfDocument(reader);               
      
      // Opening a page from the existing PDF       
      PdfPage origPage = srcPdf.getPage(1);               
      
      // Getting the page size       
      Rectangle orig = origPage.getPageSizeWithRotation();    
      
      // Getting the size of the page       
      PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf);  
      
      // Tile size 
      Rectangle tileSize = PageSize.A4.rotate();       
      AffineTransform transformationMatrix = 
         AffineTransform.getScaleInstance(tileSize.getWidth() / orig.getWidth() * 
         2f, tileSize.getHeight() / orig.getHeight() * 2f);              
      
      // The first tile       
      PdfPage page = 
      destpdf.addNewPage(PageSize.A4.rotate());       
      
      PdfCanvas canvas = new PdfCanvas(page);       
      canvas.concatMatrix(transformationMatrix);      
      canvas.addXObject(pageCopy, 0, -orig.getHeight() / 2f);              
      
      // The second tile       
      page = destpdf.addNewPage(PageSize.A4.rotate());       
      canvas = new PdfCanvas(page);       
      canvas.concatMatrix(transformationMatrix);        
      canvas.addXObject(pageCopy, -orig.getWidth() / 2f, -orig.getHeight() / 2f);
      
      // The third tile
      page = destpdf.addNewPage(PageSize.A4.rotate());
      canvas = new PdfCanvas(page);
      canvas.concatMatrix(transformationMatrix);
      canvas.addXObject(pageCopy, 0, 0);    
      
      // The fourth tile
      page = destpdf.addNewPage(PageSize.A4.rotate());
      canvas = new PdfCanvas(page);
      canvas.concatMatrix(transformationMatrix);
      canvas.addXObject(pageCopy, -orig.getWidth() / 2f, 0);
      
      // closing the documents
      destpdf.close();
      srcPdf.close();
      
      System.out.println("PDF created 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 TilingPDFPages.java 
java TilingPDFPages

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

PDF created 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 -

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

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

import com.itextpdf.kernel.geom.AffineTransform; 
import com.itextpdf.kernel.geom.PageSize; 
import com.itextpdf.kernel.geom.Rectangle; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfReader; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.canvas.PdfCanvas; 
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;  
   
public class NUppingPDF {    
   public static void main(String args[]) throws Exception {       
      // Creating a PdfWriter object       
      String dest = "C:/itextExamples/nUppingPDF.pdf";       
      PdfWriter writer = new PdfWriter(dest);                
      
      // Creating a PdfReader       
      String src = "C:/itextExamples/pdfWithImage.pdf";       
      PdfReader reader = new PdfReader(src);        
         
      // Creating a PdfDocument objects       
      PdfDocument destpdf = new PdfDocument(writer);               
      PdfDocument srcPdf = new PdfDocument(reader);                
      
      // Opening a page from the existing PDF       
      PdfPage origPage = srcPdf.getPage(1);       
      Rectangle orig = origPage.getPageSize();       
      PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf);              
      
      // N-up page       
      PageSize nUpPageSize = PageSize.A4.rotate();       
      PdfPage page = destpdf.addNewPage(nUpPageSize);       
      PdfCanvas canvas = new PdfCanvas(page);              
      
      // Scale page       
      AffineTransform transformationMatrix = AffineTransform.getScaleInstance( 
         nUpPageSize.getWidth() / orig.getWidth() / 
         2f, nUpPageSize.getHeight() / orig.getHeight() / 2f);       
      canvas.concatMatrix(transformationMatrix);              
      
      // Add pages to N-up page       
      canvas.addXObject(pageCopy, 0, orig.getHeight());       
      canvas.addXObject(pageCopy, orig.getWidth(), orig.getHeight());       
      canvas.addXObject(pageCopy, 0, 0);       
      canvas.addXObject(pageCopy, orig.getWidth(), 0);              
      
      // closing the documents       
      destpdf.close();       
      srcPdf.close();              
      
      System.out.println("PDF created 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 NUppingPDF.java 
java NUppingPDF

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

PDF created 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.