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() và 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() và 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() và 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() và 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() và 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() và 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 PdfWriter và PdfReader đố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.