二、基于 fitz 库和正则搜索提取图片

fitz 库是 pymupdf 中的一个模块,用它来提取 pdf 里的图片非常方便。

安装命令

pip install fitz pip install pymupdf

三、代码实现

导入相关包

import fitzimport reimport os

读取 pdf 提取图片,并存储

import fitzimport timeimport reimport osdef pdf2pic(path, pic_path):t0 = time.process_time()                          # 生成图片初始时间checkXO = r"/Type(?= */XObject)"           # 使用正则表达式来查找图片checkIM = r"/Subtype(?= */Image)"doc = fitz.open(path)                      # 打开pdf文件imgcount = 0                               # 图片计数lenXREF = doc.xref_length()             # 获取对象数量长度# 打印PDF的信息print("文件名:{}, 页数: {}, 对象: {}".format(path, len(doc), lenXREF - 1))# 遍历每一个对象for i in range(1, lenXREF):text = doc.xref_object(i)           # 定义对象字符串isXObject = re.search(checkXO, text)    # 使用正则表达式查看是否是对象isImage = re.search(checkIM, text)      # 使用正则表达式查看是否是图片if not isXObject or not isImage:        # 如果不是对象也不是图片,则continuecontinueimgcount += 1pix = fitz.Pixmap(doc, i)               # 生成图像对象new_name = "图片{}.png".format(imgcount) # 生成图片的名称if pix.n < 5:                           # 如果pix.n<5,可以直接存为PNGpix.save(os.path.join(pic_path, new_name))else:                                   # 否则先转换CMYKpix0 = fitz.Pixmap(fitz.csRGB, pix)pix0.save(os.path.join(pic_path, new_name))pix0 = Nonepix = None                              # 释放资源t1 = time.perf_counter()                   # 图片完成时间print("运行时间:{}s".format(t1 - t0))print("提取了{}张图片".format(imgcount))if __name__=='__main__':path = r"D:\python脚本\XX.pdf"pic_path = r'D:\python脚本\图片'# 创建保存图片的文件夹if os.path.exists(pic_path):print("文件夹已存在,不必重新创建!")passelse:os.mkdir(pic_path)pdf2pic(path, pic_path)

运行结果

四、小结

Python 中 pdf2image 库也可以完成以上需求,它的好处是如果你的 pdf 页面较多时,pdf2image 可以启动多线程会大大加快转换速度,具体可参考 pdf2image 官方文档。

最后,可能会遇到提取的图片比原本少,或者提取出不想要的图片。可以通过检查图片格式,可能不是常见的格式,提取时再减少或添加过滤条件进行尝试

python将PDF文件转换为图片相关推荐

  1. Python实现PDF文件转图片(PNG,JPEG等格式)

    介绍 这篇博客目的主要是使用Python实现PDF文件转换成图片,以方便下游任务的进行. 开发包 fitz PyMuPDF 在控制台依次执行以下命令: pip install fitz pip ins ...

  2. PDFBox操作pdf文件转换为图片

    我是如何接触到PDFBox的 疫情期间,周末在家老实呆着,女友在学法律,但女友学习法律的pdf文件资料里每页都有一些类似培训机构联系方式的一些文字,共三四百页,用普通的编辑软件删除不了,如果要删除的话 ...

  3. Cannot resolve javax.media:jai_core:1.1.3(pdf文件转换为图片的依赖出错)

    最近我在使用java完成pdf转图片时需要用到一个依赖是 但是导入时缺报错了!说Cannot resolve javax.media:jai_core:1.1.3 这里我也找到了解决方案,在这里教大家 ...

  4. 将PDF文件转换为高质量的图片:免费的在线PDF转换器

    在现代社会中,PDF文档是非常常见的一种文档格式.但是,在某些情况下,我们需要将PDF文件转换为高质量的图片,以方便分享和展示.本文将介绍几款免费的在线PDF转换器,帮助您将PDF文件快速.简单地转换 ...

  5. php生成图片文件流,php如何将base64数据流文件转换为图片文件?

    2017-03-07 在开发中,自己遇到一个前端在上传图片的时候,使用的base64数据流文件显示的图片. 也就是说 ***image/后面的jpg是我们的图片文件格式,(base64,)后面的很大一 ...

  6. PDF文件转图片怎么弄?这个方法值得收藏

    PDF文件是一种广泛使用的文件格式,其保留了原始文档的格式和内容,使其在不同平台上具有高度的兼容性.然而,在某些情况下,我们需要将PDF文件转换为图片格式以便于处理和分享.本文将介绍两种方法将PDF文 ...

  7. Python把PDF文件中每页内容分离为独立图片文件

    封面图片:<Python程序设计实验指导书>(ISBN:9787302525790),董付国,清华大学出版社 图书详情(京东): ============== 问题描述:把PDF文件转换为 ...

  8. 安卓手机如何把PDF文件转换为JPG图片

    PDF转换成JPG是在办公中比较常用的技能:因为有时你需要不是PDF文档,而是PDF文件中的某张图提出来给客户看.本文为大家介绍了使用迅捷PDF转换器将PDF转换为JPG的方法. 操作步骤: 1:先将 ...

  9. windows下用Python把pdf文件转化为图片(png高清)

    windows下python3实现PDF转png图片,高清!!!希望可以帮到大家 windows下用Python将pdf文件转化为图片(png高清) 不扯没用的,直接上代码 1.环境:windows( ...

  10. 将PDF文件转换为JPG格式图片的3种简单方法

    如何在线将PDF文件转换成图片格式?如果您在使用PDF文件时只需要其中一页或几页的内容,将PDF转换为图片可以使您更方便地使用这些内容.下面介绍三种简单易用的PDF转图片的方法. 方法一:记灵在线工具 ...

最新文章

  1. spring 测试demo乱码_spring框架的入门学习:AOP和面向切面的事务
  2. AC自动机解决字符集很大的情况(可持久化数组优化getfail的过程)
  3. 自动驾驶汽车定位技术
  4. Kestrel的ListenAnyIP和ListenLocalhost的区别
  5. 电脑入门完全自学手册_3DMAX零基础入门到精通的学习路线和教程
  6. 四年级信息技术认识计算机,四年级信息技术第三课信息工具知多少
  7. python cross val score_sklearn函数:cross_val_score(交叉验证评分)
  8. 关于无人职守创建office文档的问题
  9. 只属于你我的共同记忆
  10. SFB 项目经验-44-别以为Hyper-V比VMware差太多(仅个人观点,不喜误喷,谢谢)
  11. NSGA-II资料合集
  12. arduino与风向传感器的接线_Arduino动手做(8)湿度传感器模块
  13. Android预览Office文档
  14. python中的snip用法_Ubuntu系统中安装SNIP
  15. php seekdir,readdir()
  16. Javadoc 使用详解
  17. 【前端知识之Vue】Vue常用的修饰符
  18. 解决office软件无法打印预览 / 添加打印机失败问题
  19. MySQL导入myi,myd,frm文件及浏览
  20. 解决思科 Cisco Packet Tracer 7.3登录问题

热门文章

  1. 抖音seo排名优化技术工具源代码
  2. UART协议快速扫盲(图文并茂+超详细)
  3. CSDN学霸课表——来,这有一份PS入门速效大法
  4. 关于Base32和Base64的一点区分注意
  5. zte服务器安装linux,ZTE MF637U 在linux下安装全攻略
  6. 金工量化优质书单推荐及下载
  7. sketch插件 android,用这个免费的 Sketch 插件,帮你完美还原安卓界面!
  8. ACS712 电流传感器
  9. _stdcall 添加与否的作用
  10. 2022年全球备用锂电池管理系统行业分析报告