目前只针对纯PDF图片压缩。
实现原理: 主要通过PYMUPDF进行图片提取,图片压缩,再合并生成一个新的PDF。

1.安装依赖包

笔者的环境是Windows 10,Python3.8

pip install fitz

2.提取原PDF关键代码

3.合并图片生成PDF

import glob
import fitz
import os
import time# 1.提取原PDF关键代码
def pdf2pic(filename):image_floder='pdf'+str(time.time())os.mkdir(image_floder)pdffile = filenamedoc = fitz.open(pdffile)width, height = fitz.PaperSize("a4")totaling = doc.pageCountfor pg in range(totaling):page = doc[pg]zoom = int(100)rotate = int(0)print(page)trans = fitz.Matrix(zoom / 100.0, zoom / 100.0).preRotate(rotate)pm = page.getPixmap(matrix=trans, alpha=False)lurl=image_floder+'/%s.jpg' % str(pg+1)pm.writePNG(lurl)doc.close()return image_floder# 2.合并图片生成PDF
def pic2pdf(image_floder):doc = fitz.open()for img in sorted(glob.glob(image_floder+"/*")):  # 读取图片,确保按文件名排序print(img)imgdoc = fitz.open(img)                 # 打开图片pdfbytes = imgdoc.convertToPDF()        # 使用图片创建单页的 PDFimgpdf = fitz.open("pdf", pdfbytes)doc.insertPDF(imgpdf)                   # 将当前页插入文档if os.path.exists("newpdf.pdf"):        # 若文件存在先删除os.remove("newpdf.pdf")doc.save("newpdf.pdf")                   # 保存pdf文件doc.close()image_floder=pdf2pic(filename='paper.pdf')
pic2pdf(image_floder)

4.遇到的问题

python ModuleNotFoundError: No module named ‘frontend‘

解决方法:

pip install PyMuPDF==1.16.14

python实现PDF压缩相关推荐

  1. 用python做PDF本地化压缩,新增多进程

    用python做PDF压缩 虽然现在有很多成熟的工具了,但是就是想自己捣鼓一下 在网上找了一圈,发现实现方法有两种,一种是需要联网上传(TinyPNG的API)压缩的,一种是本地用python算法 这 ...

  2. Python处理PDF神器PyMuPDF的安装与使用

    1. PyMuPDF简介 1.1. 介绍 在介绍PyMuPDF之前,先来了解一下MuPDF,从命名形式中就可以看出,PyMuPDF是MuPDF的Python接口形式. 1.1.1. MuPDF MuP ...

  3. 手把手教你如何用Python从PDF文件中导出数据(附链接)

    作者:Mike Driscoll :翻译:季洋:校对:丁楠雅 本文约4000字,建议阅读10分钟. 本文介绍了在提取出想要的数据之后,如何将数据导出成其他格式的方法. 有很多时候你会想用Python从 ...

  4. Python处理PDF神器:PyMuPDF的安装与使用

    1.PyMuPDF简介 1. 介绍 在介绍PyMuPDF之前,先来了解一下MuPDF,从命名形式中就可以看出,PyMuPDF是MuPDF的Python接口形式. MuPDF MuPDF 是一个轻量级的 ...

  5. Python破解pdf打开密码

    Python破解pdf打开密码 环境 版本 系统 uos Python版本 Python3 模块 PyPDF2.pikepdf.tqdm 安装相应的模块 sudo pip3 install PyPDF ...

  6. Python处理PDF——PyMuPDF的安装与使用

    推荐阅读: 1.程序员用Python爬虫做副业半个月就赚了3W 2.一个30岁的程序员无比挣扎的故事,连躺平都是奢望 1.PyMuPDF简介 介绍 在介绍PyMuPDF之前,先来了解一下MuPDF,从 ...

  7. 干货!Python操作PDF的神器——PyMuPDF

    点击上方"菜鸟学Python",选择"星标"公众号 超级无敌干货,第一时间送达!!! 来源:网络 01 PyMuPDF简介 1. 介绍 大家好,我是菜鸟哥.长假 ...

  8. Python处理PDF——PyMuPDF的安装与使用(1)

    文章目录 1.`PyMuPDF`简介 1. 资料链接 2. 介绍 3. 功能 2.安装 关于命名`fitz`的说明 3.使用方法 1. 导入库,查看版本 2. 打开文档 3. Document的方法和 ...

  9. 如何使用Python将PDF转换为Word文档?

    PDF是一种常用的文件格式,用于共享和打印文档.但是,在某些情况下,PDF 文件会转换为 Word DOCX或DOC格式以解析文本或使文档可编辑.对于此类场景,本文介绍了如何使用 Python 将 P ...

最新文章

  1. 5.15 pymysql 模块
  2. Oracle的ONS创建,Oracle 10gR2 RAC Clusterware ONS服务的管理
  3. SmartCode Release 4
  4. 函数模板的载体-HPP
  5. 使用jQuery插件realshadow实现超酷真实阴影效果
  6. java system.load()_System.load()与System.loadLibrary()
  7. string-indexOf、substring、split
  8. CSS3 新增选择器:伪类选择器和属性选择器
  9. 【数据挖掘】数据挖掘总结 ( 模式挖掘 | Apriori 算法 | 支持度 | 置信度 | 关联规则 ) ★★
  10. IDEA 常用快捷键
  11. 汇编:Mac系统搭建DOSBox汇编环境
  12. html 调高德地图 导航,在H5页面内通过地址调起高德地图实现导航
  13. 【稳定性day7】mPaaS - 蚂蚁金服高可用的产品化之路
  14. hadoop 8088端口网页无法打开
  15. 修改蒙特卡洛树搜索让人工智能像人类一样玩视频游戏
  16. icraft服务器网页图片,iCraft家族添新一代顶级显卡
  17. 原创 关于微信拼车小程序开发的需求分析(分析建模2)
  18. mybatis-plus使用updateById更新数据不生效,需要使用lambdaUpdate
  19. 电容笔和触控笔有什么区别?第三方电容笔了解下
  20. 電腦機房空調氣流設計與節能

热门文章

  1. python的pyautogui的函数,实现按键精灵
  2. linux oracle开启监听服务器,linux服务器启动oracle监听端口
  3. 计算机应用中dss是,基于数据仓库的决策支持系统(DSS)-计算机应用专业论文.docx...
  4. 【报错】fatal: unable to access
  5. 宋氏极简美学的编码风格
  6. Contest3410 - 2022大中小学生联合训练第五场
  7. CSDN-markdown语法之如何插入图片
  8. 弟子规5:冬则温 夏则清 晨则省 昏则定
  9. binder: 467:467 ioctl 40046210 7ff5391764 returned -22错误
  10. absolute定位宽高尺寸继承