Viết script Python nén PDF tự động bằng PyPDF2 và pikepdf
Cập nhật lần cuối

Để giải quyết vấn đề tài liệu PDF có dung lượng lớn, việc nén PDF là một giải pháp hiệu quả. Bạn có thể thực hiện tự động hóa tác vụ này bằng cách viết script Python, sử dụng các thư viện mạnh mẽ như PyPDF2 và pikepdf. Ngoài ra, các công cụ nén tài liệu PDF online cũng mang lại sự tiện lợi vượt trội. Bài viết này sẽ hướng dẫn bạn cách nén file PDF bằng script Python và giới thiệu một giải pháp nén online nhanh chóng.
Nén PDF với PyPDF2
PyPDF2 là một thư viện Python phổ biến và linh hoạt cho phép bạn thực hiện nhiều thao tác với file PDF như tách, gộp, cắt trang, thêm watermark và cả nén (với hiệu quả nhất định). Đây là một lựa chọn tốt cho các tác vụ xử lý PDF cơ bản.
Để bắt đầu sử dụng PyPDF2, bạn cần cài đặt thư viện này thông qua pip:
pip install pypdf2
Dưới đây là một ví dụ script Python đơn giản sử dụng PyPDF2 để nén file PDF. Phương pháp nén của PyPDF2 thường dựa trên việc tạo lại file PDF mà không bao gồm một số thông tin không cần thiết, có thể giúp giảm dung lượng nhưng hiệu quả nén có thể không cao đối với mọi loại file.
from PyPDF2 import PdfReader, PdfWriter
def compress_pdf_pypdf2(input_path, output_path):
reader = PdfReader(input_path)
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
# Áp dụng nén (có thể không hiệu quả nhiều)
writer.add_metadata(reader.metadata)
with open(output_path, "wb") as f:
writer.write(f)
# Sử dụng hàm
compress_pdf_pypdf2("input.pdf", "output_pypdf2.pdf")
Nén PDF với pikepdf
Nếu bạn cần hiệu quả nén cao hơn và kiểm soát tốt hơn quá trình tối ưu file PDF, pikepdf là một lựa chọn đáng cân nhắc. Thư viện này được xây dựng trên QPDF, một công cụ mạnh mẽ để chuyển đổi và kiểm tra file PDF. pikepdf cung cấp các tùy chọn chi tiết hơn để loại bỏ đối tượng không cần thiết, giảm chất lượng hình ảnh hoặc nén lại nội dung file.
Để cài đặt pikepdf, bạn sử dụng pip:
pip install pikepdf
Dưới đây là ví dụ script Python sử dụng pikepdf để nén file PDF với tùy chọn tối ưu hóa:
import pikepdf
def compress_pdf_pikepdf(input_path, output_path, compression_level=None):
pdf = pikepdf.open(input_path)
# Tùy chọn nén: Zero (không nén), Default (mặc định), Suggested (gợi ý),
# screen, ebook, printer, prepress
# Bạn có thể điều chỉnh tùy chọn nén phù hợp
if compression_level:
pdf.save(output_path, compression=compression_level)
else:
pdf.save(output_path) # Lưu với cài đặt mặc định hoặc tối ưu hóa cơ bản
# Sử dụng hàm với tùy chọn nén 'ebook' (tối ưu cho đọc trên thiết bị)
compress_pdf_pikepdf("input.pdf", "output_pikepdf_ebook.pdf", compression_level="ebook")
# Sử dụng hàm với tùy chọn nén mặc định
compress_pdf_pikepdf("input.pdf", "output_pikepdf_default.pdf")
Ví dụ trên sử dụng phương thức save
của pikepdf với tùy chọn compression
để áp dụng các mức nén khác nhau.
So sánh hiệu quả nén: PyPDF2 vs pikepdf
PyPDF2 phù hợp cho các tác vụ xử lý PDF cơ bản và nén không phải là điểm mạnh nhất của thư viện này. Hiệu quả nén thường chỉ giới hạn ở việc loại bỏ một số dữ liệu thừa.
Ngược lại, pikepdf, dựa trên QPDF, cung cấp các thuật toán nén và tối ưu hóa mạnh mẽ hơn, cho phép kiểm soát chi tiết về cách các đối tượng trong file PDF được xử lý. Điều này thường mang lại hiệu quả nén vượt trội, đặc biệt với các file chứa nhiều hình ảnh hoặc dữ liệu phức tạp.
- Sử dụng PyPDF2 khi: Bạn chỉ cần thực hiện các thao tác PDF cơ bản và hiệu quả nén không phải là ưu tiên hàng đầu, hoặc khi bạn đã sử dụng PyPDF2 cho các mục đích khác và muốn tận dụng nó.
- Sử dụng pikepdf khi: Bạn cần nén file PDF với dung lượng giảm đáng kể, cần kiểm soát quá trình nén hoặc làm việc với các file PDF phức tạp.
Việc chọn thư viện nào phụ thuộc vào nhu cầu cụ thể và mức độ kiểm soát bạn muốn đối với quá trình nén.
Giải pháp Nén tài liệu PDF online tiện lợi từ 500PDF
Đối với những người không quen thuộc với lập trình hoặc chỉ cần một giải pháp nén file PDF nhanh chóng, tiện lợi mà không cần cài đặt bất kỳ phần mềm nào, công cụ Nén tài liệu PDF trực tuyến từ 500PDF là một lựa chọn tuyệt vời.
Công cụ này cung cấp một giao diện đơn giản, dễ sử dụng, cho phép bạn nén file PDF chỉ với vài thao tác. Dưới đây là những lợi ích khi sử dụng công cụ nén PDF online của 500PDF:
- Nhanh chóng và dễ sử dụng: Giao diện trực quan, kéo thả file hoặc chọn từ máy tính, nén xong tải về ngay.
- Không cần cài đặt phần mềm: Truy cập trực tiếp qua trình duyệt web từ bất kỳ thiết bị nào.
- An toàn và riêng tư: File của bạn được xử lý an toàn và tự động xóa sau một khoảng thời gian nhất định.
- Hoạt động trên mọi thiết bị và trình duyệt: Tương thích với máy tính, điện thoại, máy tính bảng trên Chrome, Firefox, Safari, Edge...
- Miễn phí sử dụng không cần đăng ký tài khoản: Bạn có thể nén file PDF miễn phí mà không cần tạo tài khoản.
- Đặc biệt khi dùng tài khoản 123doc: Sử dụng không giới hạn, tài liệu từ 123doc tự động đồng bộ, sẵn sàng chuyển đổi, mang lại trải nghiệm liền mạch cho người dùng hệ sinh thái 123doc.
Hãy thử Nén tài liệu PDF ngay!
Việc nén tài liệu PDF bằng script Python với PyPDF2 hoặc pikepdf mang lại sự linh hoạt cho người dùng kỹ thuật, cho phép tự động hóa và tùy chỉnh quy trình nén. Tuy nhiên, đối với nhu cầu nhanh chóng và tiện lợi, các công cụ nén PDF online như của 500PDF là một lựa chọn tuyệt vời, đặc biệt khi bạn cần xử lý file ngay lập tức mà không muốn bận tâm về code hay cài đặt. Tùy vào mục đích sử dụng, khả năng kỹ thuật và số lượng file cần xử lý, bạn có thể chọn giải pháp phù hợp nhất để tối ưu kích thước file PDF của mình.