iText - Cài đặt Vị trí của Hình ảnh
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 hàm 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 pháp tương ứng do lớp của nó cung cấp.
Bước 3: Tạo đối tượng Tài liệu
Các Document lớp của gói com.itextpdf.layoutlà phần tử gốc trong khi tạo một tệp PDF tự túc. Một trong những hàm tạo của lớp này chấp nhận một đối tượng của lớp PdfDocument.
Khởi tạo Document lớp bằng cách truyền đối tượng của lớp PdfDocument đượ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, được 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 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 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.