Tệp ZIP thường được sử dụng để nén và đóng gói nhiều tệp vào một kho lưu trữ. Việc chuyển đổi các tệp này sang định dạng PDF có thể hữu ích cho nhiều mục đích khác nhau như tạo báo cáo, lưu trữ tài liệu hoặc chia sẻ thông tin ở định dạng chuẩn. Trong hướng dẫn này, chúng ta sẽ khám phá cách chuyển đổi tệp ZIP thành tài liệu PDF bằng Java.
Tại sao chuyển đổi ZIP sang PDF?
Bạn có thể cần chuyển đổi tệp ZIP sang định dạng PDF cho các trường hợp sử dụng khác nhau. Ở đây chúng ta đang thảo luận về một số lý do cho việc chuyển đổi:
Tạo báo cáo: Tạo báo cáo PDF bằng cách trích xuất dữ liệu từ tệp ZIP và trình bày chúng dưới dạng tài liệu được định dạng.
Lưu trữ tài liệu: Chuyển đổi nhiều tài liệu hoặc tệp được lưu trữ trong kho lưu trữ ZIP thành một tệp PDF duy nhất để dễ dàng lưu trữ và truy xuất.
Chuẩn hóa tài liệu: Chuyển đổi các định dạng tệp đa dạng trong kho lưu trữ ZIP sang định dạng PDF thống nhất để chia sẻ và xem dễ dàng hơn.
Trình chuyển đổi ZIP sang PDF - Cấu hình môi trường Java
Bạn phải định cấu hình môi trường phát triển chạy mã Java và nhúng tính năng này vào hệ thống của mình.
- Đảm bảo rằng Bộ công cụ phát triển Java (JDK) được cài đặt trên hệ thống của bạn.
- Đảm bảo rằng bạn có Môi trường phát triển tích hợp (IDE) như IntelliJ IDEA, Apache NetBeans để phát triển Java.
- Hơn nữa, hãy tải xuống tệp JAR của Conholdate.Total for Java hoặc sử dụng các cấu hình Maven sau:
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.2</version>
<type>pom</type>
</dependency>
Chuyển đổi ZIP sang PDF trong Java
Các bước bên dưới trình bày cách chuyển đổi ZIP sang PDF trong Java:
- Khởi tạo đối tượng ZipInputStream bằng tệp ZIP đầu vào.
- Chỉ định thư mục đầu ra nơi các tập tin giải nén sẽ được lưu.
- Lặp lại qua từng tệp trong tệp ZIP đầu vào và giải nén nó vào thư mục đầu ra.
- Duy trì một danh sách tạm thời để lưu trữ tên của các tệp được giải nén từ thư mục đã giải nén.
- Lấy danh sách tất cả các tệp (bao gồm cả đường dẫn đầy đủ của chúng) từ thư mục đã giải nén.
- Lặp lại từng tệp được giải nén và chuyển đổi nó sang định dạng PDF.
- Hợp nhất các tập tin PDF đã chuyển đổi.
- Tạo một phiên bản của lớp Sáp nhập với tài liệu PDF đầu vào đầu tiên từ danh sách tạm thời.
- Lặp lại danh sách các tài liệu PDF đã chuyển đổi, bắt đầu từ tệp thứ hai.
- Gọi phương thức lưu của phiên bản lớp Sáp nhập để lưu tài liệu PDF đã hợp nhất.
Mã mẫu sau đây cho biết cách chuyển đổi ZIP sang PDF trong Java:
// Các định dạng tệp được hỗ trợ: https://docs.groupdocs.com/conversion/java/supported-document-formats/
// Hoạt động với OpenJDK 17
package com.mycompany.asposejavatest;
import java.io.*;
import java.util.ArrayList;
import org.apache.commons.compress.archivers.*;
import org.apache.commons.compress.compressors.*;
import com.groupdocs.conversion.*;
import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.options.convert.PdfConvertOptions;
import com.groupdocs.conversion.contracts.PossibleConversions;
import com.groupdocs.conversion.options.convert.ConvertOptions;
import com.groupdocs.merger.*;
import com.groupdocs.merger.Merger;
public class AsposeJavaTest {
public static void main(String[] args) {
try {
InputStream inputfile = new BufferedInputStream(new FileInputStream("input.zip"));
// Đối với những định dạng được lưu trữ và nén riêng biệt. Giống như tar.gz tar.bz tar.xz Sử dụng
// CompressorInputStream và sử dụng ArchiveInputStream để tải tệp đầu vào.
//CompressorInputStream cis = new CompressorStreamFactory().createCompressorInputStream(inputfile);
//ArchiveInputStream ais = new ArchiveStreamFactory().createArchiveInputStream(cis);
// Đối với các định dạng có hỗ trợ nén tích hợp. Giống như Zip RAR JAR 7zip
// ArchiveInputStream để tải tệp đầu vào mà không cần CompressorInputStream
//ArchiveInputStream ais = new ArchiveStreamFactory().createArchiveInputStream(inputfile);
ArchiveEntry entry = ais.getNextEntry();
File outputDir = new File("/tmp/output");
if (!outputDir.exists()) {
outputDir.mkdirs();
}
while (entry != null) {
String filePath = outputDir.getAbsolutePath() + File.separator + entry.getName();
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
byte[] bytesIn = new byte[1024];
int read;
while ((read = ais.read(bytesIn)) != -1) {
bos.write(bytesIn, 0, read);
}
ais.close();
bos.close();
entry = ais.getNextEntry();
}
// Danh sách tạm thời để giữ tên của các tệp được giải nén từ thư mục đã giải nén
ArrayList<String> filesList = new ArrayList<>();
// Lấy danh sách tất cả các file (có đường dẫn đầy đủ) từ thư mục đã giải nén
File[] files = outputDir.listFiles();
// Lặp lại từng tệp được giải nén và chuyển đổi từng tệp thành PDF
for (File file : files) {
// Tải tập tin được giải nén
Converter converter = new Converter(file.getAbsolutePath());
// Đặt tùy chọn chuyển đổi cho định dạng PDF
PdfConvertOptions convertOptions = new PdfConvertOptions();
// Chuyển đổi sang định dạng PDF
String outPath = outputDir.getAbsolutePath() + File.separator + file.getName()+ ".pdf";
converter.convert(outPath, convertOptions);
// Thêm tên tệp vào Danh sách tạm thời sau khi chuyển đổi sang PDF
filesList.add(outPath);
}
// Hợp nhất các tệp PDF bằng API GroupDocs.Merger
// Hợp nhất nhanh chóng với tài liệu PDF đầu vào đầu tiên trong Danh sách tạm thời
Merger merger = new Merger(filesList.get(0));
// Lặp lại danh sách các tài liệu PDF đã chuyển đổi bắt đầu từ tệp thứ hai
for (int i = 1; i < filesList.size(); i++) {
// Gọi phương thức Join của thể hiện lớp Sáp nhập và chuyển từng tệp nguồn còn lại
merger.join(filesList.get(i));
}
// Gọi phương thức Save của thể hiện lớp Sáp nhập để lưu tài liệu PDF đã hợp nhất
merger.save("/tmp/output.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Giấy phép đánh giá miễn phí
Bạn có thể chuyển đổi các tệp ZIP sang định dạng PDF và kiểm tra hết công suất của các tính năng API khác bằng cách yêu cầu giấy phép tạm thời miễn phí.
Kết thúc
Bài viết này tóm tắt việc chuyển đổi tệp ZIP sang PDF bằng Java. Nó liên quan đến việc trích xuất các tệp từ kho lưu trữ ZIP, chuyển đổi chúng sang định dạng PDF và sau đó hợp nhất chúng thành một tài liệu PDF duy nhất. Hơn nữa, quá trình này có thể được tự động hóa và tùy chỉnh hơn nữa dựa trên yêu cầu cụ thể của bạn. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi tại diễn đàn.
Câu hỏi thường gặp
Tôi có thể tùy chỉnh các tài liệu PDF được tạo từ tệp ZIP không?
Có, bạn có thể tùy chỉnh các tài liệu PDF được tạo từ tệp ZIP. Bạn có thể áp dụng các thao tác khác nhau như đặt phông chữ, màu sắc, bố cục và các yếu tố tạo kiểu khác để nâng cao khả năng trình bày trực quan cho tài liệu PDF của mình. Bạn cũng có thể thêm đầu trang, chân trang, hình mờ và caption theo yêu cầu của mình.
Tôi có thể chuyển đổi các tệp cụ thể trong kho lưu trữ ZIP sang PDF thay vì chuyển đổi tất cả các tệp không?
Có, bạn có thể chuyển đổi các tệp cụ thể trong kho lưu trữ ZIP sang PDF bằng cách sửa đổi mã Java cho phù hợp. Bạn có thể trích xuất các tệp cụ thể dựa trên tên, tiện ích mở rộng hoặc tiêu chí khác của chúng, sau đó chỉ chuyển đổi những tệp được trích xuất đó sang định dạng PDF. Điều này cho phép chuyển đổi có chọn lọc và tùy chỉnh dựa trên yêu cầu của bạn.
Có cách nào để bảo vệ bằng mật khẩu tài liệu PDF thu được trong quá trình chuyển đổi không?
Có, bạn có thể bảo vệ tài liệu PDF bằng mật khẩu vì các tính năng được hỗ trợ bao gồm mã hóa PDF, đặt mật khẩu, quyền và mức mã hóa cho tài liệu PDF.