Cách chuyển đổi GIF sang PDF trong Java

Cách chuyển đổi GIF sang PDF trong Java

Định dạng tệp PDF là một trong những tệp dựa trên vectơ phổ biến nhất. Mặt khác, GIF dựa trên hình ảnh raster và mang lại nhiều lợi ích khi hiển thị hình ảnh dưới dạng hoạt ảnh. Trong bài đăng trên blog này, bạn sẽ tìm hiểu cách chuyển đổi GIF sang PDF trong ứng dụng Java. Do đó, bạn sẽ cài đặt [thư viện] xử lý tài liệu này để xây dựng trình chuyển đổi GIF sang PDF theo chương trình. Tự động hóa quá trình chuyển đổi GIF sang PDF chắc chắn sẽ mang lại lợi thế cạnh tranh cho ứng dụng kinh doanh của bạn.

Bạn sẽ đi qua các điểm sau:

Chuyển đổi GIF sang PDF - Cài đặt API

Thư viện xử lý tài liệu này rất đơn giản để cài đặt trong dự án Java của bạn. Tuy nhiên, bạn có thể tải xuống tệp JAR hoặc cài đặt thư viện này bằng các cấu hình Maven sau.

<repository>
   <id>AsposeJavaAPI</id>
   <name>Aspose Java API</name>
   <url>https://releases.aspose.com/java/repo/</url>
 </repository> 
<dependency>
  <groupId>com.aspose</groupId>
  <artifactId>aspose-words</artifactId>
  <version>22.10</version>
  <classifier>jdk17</classifier>
</dependency>

Cách chuyển đổi GIF sang PDF trong Java

Sau khi thư viện được cài đặt, bạn có thể bắt đầu viết mã nguồn để xây dựng trình chuyển đổi GIF sang PDF theo chương trình.

Bạn có thể làm theo các bước và đoạn mã được đưa ra dưới đây:

  1. Khởi tạo một thể hiện của lớp Tài liệu.
  2. Khởi tạo một đối tượng của lớp DocumentBuilder và liên kết đối tượng Document.
  3. Bây giờ, hãy tải tệp GIF nguồn và tạo luồng hình ảnh bằng cách gọi phương thức createImageInputStream lấy đầu vào từ Đối tượng File.
  4. Tạo một đối tượng của lớp ImageReader, truy cập phương thức getImageReaders trả về một Iterator chứa tất cả các ImageReader đã đăng ký hiện tại tuyên bố có thể giải mã Đối tượng được cung cấp, điển hình là ImageInputStream.
  5. Gọi phương thức setInput để đặt nguồn đầu vào sẽ sử dụng cho ImageInputStream đã cho hoặc đối tượng khác.
  6. Lấy số lượng khung hình trong ảnh bằng cách gọi phương thức getNumImages.
  7. Lặp qua tất cả các khung.
  8. Chèn dấu ngắt phần trước mỗi trang mới, trong trường hợp hình ảnh có nhiều khung hình bằng cách gọi phương thức insertBreak.
  9. Chọn khung hoạt động bằng cách gọi phương thức đọc.
  10. Nhận thiết lập trang hiện tại bằng cách gọi phương thức getPageSetup và gán nó cho đối tượng lớp PageSetup.
  11. Gọi phương thức setPageWidth để đặt chiều rộng trang.
  12. Phương thức setPageHeight sẽ lưu lại chiều cao của trang.
  13. Gọi phương thức insertImage để chèn hình ảnh vào tài liệu và đặt nó ở góc trên cùng bên trái của trang.
  14. Lưu tệp ở định dạng tệp PDF bằng cách gọi phương thức save.

Sao chép và dán đoạn mã sau vào tệp chính của bạn:

 // Khởi tạo một thể hiện của lớp Tài liệu. 
 Document doc = new Document();
 // Khởi tạo một đối tượng của lớp DocumentBuilder và liên kết đối tượng Document. 
 DocumentBuilder builder = new DocumentBuilder(doc);
 // Bây giờ, hãy tải tệp GIF nguồn và tạo luồng hình ảnh bằng cách gọi phương thức createImageInputStream lấy đầu vào từ Đối tượng Tệp.  
 ImageInputStream iis = ImageIO.createImageInputStream(new File("sample.gif"));
 // Tạo một đối tượng của lớp ImageReader, Truy cập phương thức getImageReaders trả về một Iterator chứa tất cả các ImageReader đã đăng ký hiện tại tuyên bố có thể giải mã Đối tượng được cung cấp, điển hình là ImageInputStream. 
 ImageReader reader = ImageIO.getImageReaders(iis).next();
 // Gọi phương thức setInput đặt nguồn đầu vào để sử dụng cho ImageInputStream đã cho hoặc Đối tượng khác. 
 reader.setInput(iis, false);
 // Lấy số lượng khung hình trong hình ảnh bằng cách gọi phương thức getNumImages.
 int framesCount = reader.getNumImages(true);
 // Lặp qua tất cả các khung.
 for (int frameIdx = 0; frameIdx < framesCount; frameIdx++) {
     // Chèn dấu ngắt phần trước mỗi trang mới, trong trường hợp hình ảnh có nhiều khung hình bằng cách gọi phương thức InsertBreak. 
     if (frameIdx != 0)
         builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);
     // Chọn khung hoạt động bằng cách gọi phương thức đọc. 
     BufferedImage image = reader.read(frameIdx);
     // Nhận thiết lập trang hiện tại bằng cách gọi phương thức getPageSetup và gán nó cho đối tượng lớp PageSetup. 
     PageSetup ps = builder.getPageSetup();
     // Gọi phương thức setPageWidth để đặt chiều rộng trang. 
     ps.setPageWidth(ConvertUtil.pixelToPoint(image.getWidth()));
     // Phương thức setPageHeight sẽ lưu chiều cao của trang. 
     ps.setPageHeight(ConvertUtil.pixelToPoint(image.getHeight()));
     // Gọi phương thức InsertImage để chèn hình ảnh vào tài liệu và đặt nó ở góc trên cùng bên trái của trang. 
     builder.insertImage(
             image,
             RelativeHorizontalPosition.PAGE,
             0,
             RelativeVerticalPosition.PAGE,
             0,
             ps.getPageWidth(),
             ps.getPageHeight(),
             WrapType.NONE);
 }

 if (iis != null) {
     iis.close();
     reader.dispose();
 }
 // Lưu tệp dưới dạng định dạng tệp PDF bằng cách gọi phương thức lưu. 
 doc.save("gifToPdf.pdf");

Đầu ra có thể được nhìn thấy trong hình ảnh dưới đây:

Trình chuyển đổi GIF sang PDF

Nhận giấy phép miễn phí

Bạn có thể tận dụng giấy phép tạm thời miễn phí để dùng thử API mà không bị giới hạn về đánh giá.

Tổng hợp

Chúng tôi kết thúc bài viết blog này ở đây. bạn đã trải qua cách chuyển đổi GIF sang PDF trong Java bằng cách sử dụng một vài dòng mã nguồn. Ngoài ra, bạn có thể cài đặt thư viện xử lý tài liệu này để xây dựng trình chuyển đổi GIF sang PDF theo chương trình. Ngoài ra, bạn có thể truy cập tài liệu để biết các tính năng thú vị khác.

Hơn nữa, chúng tôi khuyên bạn nên làm theo Hướng dẫn bắt đầu của chúng tôi.

Cuối cùng, conholdate.com đang viết bài blog mới. Vì vậy, hãy giữ liên lạc để cập nhật thường xuyên.

Đặt một câu hỏi

Bạn có thể cho chúng tôi biết về các câu hỏi hoặc thắc mắc của bạn trên diễn đàn của chúng tôi.

Câu hỏi thường gặp

Làm cách nào để chuyển đổi GIF sang PDF?

Bạn có thể thực hiện chuyển đổi GIF sang PDF theo chương trình bằng [thư viện] Java này 3. Hơn nữa, vui lòng truy cập liên kết này để lấy đoạn trích.

Xem thêm