赞
踩
使用python压缩pdf文件大小
—提示 只安装pymupdf 不安装fitz 两者有冲突
代码如下(示例):
import pymupdf
import os
代码如下(示例):
```python def covert2pic(zoom): if os.path.exists('.pdf'): # 临时文件,需为空 os.removedirs('.pdf') os.mkdir('.pdf') for pg in range(totaling): page = doc[pg] zoom = int(zoom) # 值越大,分辨率越高,文件越清晰 rotate = int(0) print(page) trans = pymupdf.Matrix(zoom / 100.0, zoom / 100.0).prerotate(rotate) pm = page.get_pixmap(matrix=trans, alpha=False) lurl = '.pdf/%s.jpg' % str(pg + 1) pm.save(lurl) doc.close() def pic2pdf(obj): doc = pymupdf.open() for pg in range(totaling): img = '.pdf/%s.jpg' % str(pg + 1) imgdoc = pymupdf.open(img) # 打开图片 pdfbytes = imgdoc.convert_to_pdf() # 使用图片创建单页的 PDF os.remove(img) imgpdf = pymupdf.open("pdf", pdfbytes) doc.insert_pdf(imgpdf) # 将当前页插入文档 if os.path.exists(obj): # 若文件存在先删除 os.remove(obj) doc.save(obj) # 保存pdf文件 doc.close() def pdfz(sor, obj, zoom): covert2pic(zoom) pic2pdf(obj) if __name__ == "__main__": sor = "1.pdf" # 需要压缩的PDF文件需要和执行的py文件同一个目录 obj = "new" + sor doc = pymupdf.open(sor) totaling = doc.page_count zoom = 200 # 清晰度调节,缩放比率,值越大越清晰 pdfz(sor, obj, zoom) os.removedirs('.pdf')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。