Làm việc với Hình ảnh PDF bằng Java

Hình ảnh được sử dụng rộng rãi cho các loại mô tả và minh họa khác nhau trong các tệp PDF. Trong bài viết này, bạn sẽ học cách xử lý hình ảnh trong tệp PDF theo chương trình. Đặc biệt, bài viết sẽ trình bày cách thêm, trích xuất, xóa hoặc thay thế hình ảnh trong tệp PDF bằng Java.

Java API để Thêm và Thao tác Hình ảnh trong PDF - Tải xuống Miễn phí

Aspose.PDF dành cho Java là một API mạnh mẽ cung cấp cho bạn một loạt các tính năng thao tác PDF. API cho phép bạn làm việc với văn bản, chú thích hoặc hình ảnh trong tệp PDF một cách liền mạch. Bạn có thể tải xuống JAR của API hoặc cài đặt nó bằng cách sử dụng các cấu hình Maven sau.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>21.2</version>
</dependency>

Thêm hình ảnh vào tệp PDF trong Java

Sau đây là các bước để thêm hình ảnh trong tệp PDF bằng Java.

Mẫu mã sau đây cho thấy cách thêm hình ảnh vào tệp PDF trong Java.

// Mở một tài liệu
Document pdfDocument1 = new Document("input.pdf");

// Đặt tọa độ
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Lấy trang bạn muốn thêm hình ảnh vào
Page page = pdfDocument1.getPages().get_Item(1);

// Tải hình ảnh vào luồng
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));

// Thêm hình ảnh vào bộ sưu tập Hình ảnh của tài nguyên trang
page.getResources().getImages().add(imageStream);

// Sử dụng toán tử GSave: toán tử này lưu trạng thái đồ họa hiện tại
page.getContents().add(new Operator.GSave());

// Tạo các đối tượng Hình chữ nhật và Ma trận
Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.getURX() - rectangle.getLLX(), 0, 0, rectangle.getURY() - rectangle.getLLY(), rectangle.getLLX(), rectangle.getLLY() });

// Sử dụng toán tử ConcatenateMatrix (ma trận nối): xác định cách đặt hình ảnh
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());

// Sử dụng toán tử Do: toán tử này vẽ hình ảnh
page.getContents().add(new Operator.Do(ximage.getName()));

// Sử dụng toán tử GRestore: toán tử này khôi phục trạng thái đồ họa
page.getContents().add(new Operator.GRestore());

// Lưu tệp PDF mới
pdfDocument1.save("Updated_document.pdf");

// Đóng luồng hình ảnh
imageStream.close();

Trích xuất hình ảnh từ tệp PDF bằng Java

Sau đây là các bước để trích xuất hình ảnh từ tài liệu PDF bằng Java.

Mẫu mã sau đây cho thấy cách trích xuất hình ảnh từ tệp PDF bằng Java.

// Mở một tài liệu
Document pdfDocument = new Document("input.pdf");

// Trích xuất một hình ảnh cụ thể
XImage xImage = pdfDocument.getPages().get_Item(1).getResources().getImages().get_Item(1);

// Tạo đối tượng luồng để lưu hình ảnh đầu ra
java.io.OutputStream output = new java.io.FileOutputStream("output.jpg");

// Lưu hình ảnh đầu ra
xImage.save(output);

// Đóng luồng
output.close();

Xóa hình ảnh khỏi tệp PDF bằng Java

Sau đây là các bước để xóa hình ảnh khỏi tệp PDF bằng Java.

  • Tải tệp PDF vào đối tượng Tài liệu.
  • Xóa (các) hình ảnh mong muốn bằng một trong các phương pháp sau.
  • Cuối cùng, lưu tệp PDF đã cập nhật bằng phương thức Document.save (string).

Mẫu mã sau đây cho thấy cách xóa hình ảnh trong PDF bằng Java.

// Mở một tài liệu
Document pdfDocument = new Document("input.pdf");

// Xóa một hình ảnh cụ thể
pdfDocument.getPages().get_Item(1).getResources().getImages().delete(1);

// Lưu tệp PDF đã cập nhật
pdfDocument.save("output.pdf");

Thay thế hình ảnh trong tệp PDF bằng Java

Sau đây là các bước để thay thế hình ảnh trong tệp PDF bằng Java.

Mẫu mã sau đây cho thấy cách thay thế một hình ảnh trong PDF bằng Java.

// Mở một tài liệu
Document pdfDocument = new Document("input.pdf");

// Thay thế một hình ảnh cụ thể
pdfDocument.getPages().get_Item(1).getResources().getImages().replace(1, new java.io.FileInputStream(new java.io.File("aspose.png")));

// Lưu tệp PDF đã cập nhật
pdfDocument.save("output.pdf");

API Java để thêm hình ảnh trong PDF - Nhận giấy phép API miễn phí

Bạn có thể dùng thử miễn phí Aspose.PDF for Java bằng cách nhận giấy phép tạm thời.

Sự kết luận

Trong bài này, bạn đã học cách thao tác với hình ảnh trong tệp PDF bằng Java. Hướng dẫn từng bước và các mẫu mã đã chỉ ra cách trích xuất, thêm, xóa và thay thế hình ảnh trong tệp PDF. Bạn có thể khám phá các tính năng khác của Aspose.PDF dành cho Java bằng cách sử dụng tài liệu. Trong trường hợp có bất kỳ thắc mắc nào, bạn có thể liên hệ với chúng tôi qua diễn đàn của chúng tôi.

Xem thêm