当前位置:首页>python>精炼Python自动化:2种高效PDF文档压缩方案实战

精炼Python自动化:2种高效PDF文档压缩方案实战

  • 2026-09-02 20:37:48
精炼Python自动化:2种高效PDF文档压缩方案实战

关注我,学习更多实用Python知识

🌈 Hi,小伙伴们~

🛠️ 压缩 PDF 减小文件大小,能提高文件传输的效率,节省存储空间,除了使用一些专业工具对PDF文件进行压缩,我们还可以通过 Python 来执行该操作,实现自动化、批量处理PDF文件

🎯 今天,介绍2种在Python生态中广受好评的PDF压缩方案:PyMuPDF (fitz) 与 PyPDF2,它们分别适用于不同的场景,能够帮助你轻松减小PDF文件体积~✨

⚙️ 方案一:使用 PyMuPDF (fitz) 强力压缩

📚PyMuPDF 功能全面,压缩效果显著,特别适合包含大量图片的PDF

import fitz  # PyMuPDF库def compress_pdf_with_fitz(input_path, output_path):"""    使用 PyMuPDF 压缩PDF文件    :param input_path: 输入PDF文件路径    :param output_path: 输出PDF文件路径    """    doc = fitz.open(input_path)# 对每一页进行内容流压缩for page in doc:        page.clean_contents()# 关键压缩参数解析:# garbage=4: 最高级别清理冗余对象# deflate=True: 启用压缩# clean=True: 尝试进一步优化结构    doc.save(output_path,             garbage=4,             deflate=True,             clean=True)    doc.close()print(f"压缩完成,文件已保存至: {output_path}")

📦 方案二:使用 PyPDF2 进行无损压缩

📚如果你的PDF中重复对象多,PyPDF2 通过简单的“读取-重写”就能有效减小体积,且完全无损

from PyPDF2 import PdfReader, PdfWriterdef compress_pdf_with_pypdf2(input_path, output_path):    reader = PdfReader(input_path)    writer = PdfWriter()# 复制所有页面和元数据for page in reader.pages:        writer.add_page(page)    writer.add_metadata(reader.metadata)# 可选:启用内容流压缩 (CPU密集,但效果更好)# for page in writer.pages:#     page.compress_content_streams()  # 注意:这步比较耗时    with open(output_path, "wb") as output_file:        writer.write(output_file)print(f"压缩完成,文件已保存至: {output_path}")# 使用示例compress_pdf_with_pypdf2("待压缩.pdf", "压缩后_pypdf2.pdf")

💡 如何选择

追求最高压缩率:优先尝试 PyMuPDF,其 garbage 和 deflate 参数组合效果显著

处理图片PDF:PyMuPDF 是更好的选择,它针对图像有优化

要求快速且无损:选 PyPDF2,其“读取-重写”方法安全快捷

优化建议

✅ 文件若依然很大:如果PDF内嵌了大量高分辨率图片,仅靠代码压缩可能收效甚微,一个有效的策略是:先用图像处理软件(如Photoshop、GIMP)或命令行工具(如ImageMagick)批量降低图片的DPI(例如从300dpi降至150dpi)然后再使用上述Python脚本进行二次压缩,效果将大幅提升

总 结 💡

💡 关注我,每周分享 Python 干货 × 自动化技巧

📌 如果这篇文章对你有帮助,欢迎:

👍 点赞 | ⭐ 收藏 | 🔄 分享给朋友

👇点击阅读往期文章

1.“摸鱼”新技能!用Python让Word自动干活,我喝茶它加班
2.要用 Python 爬虫,这些基础知识你一定要懂!
3.手把手教你 “ 爬取小红书评论内容 ”,0基础也能上手的 Python 爬虫实战!
4.告别手敲界面!用Qt Designer"拖拉拽"搞定Python GUI
5.超7000万次下载!Python自动化神器PyAutoGUI,助你轻松准时下班!
6.告别命令行,可视化的打包" 神器 "!轻松让 Python 程序转 EXE
7.用3分钟学会 Python 自动发邮件,定时推送+各种附件一劳永逸!
8.企业微信自动发送图文、文件、音视频 Python 实现指南
9.Pandas +Excel:数据筛选、VLOOKUP、透视、公式、绘图 一个案例全搞定
10.Python 生成二维码:自定义背景、Logo 与样式,批量生成超实用案例!
11.用Python玩转PDF:文字提取/图片抓取/转PPT技巧(附完整代码)
12.Python抓取摄像头图像,进行AI识别(四):AI火焰自动预警的实现

最新文章

随机文章