当前位置: 首页 > news >正文

轻松使用python将PDF转换为图片(成功)

使用PyMuPDF(fitz)将PDF转换为图片

在处理PDF文件时,我们经常需要将PDF页面转换为图片格式,以便于在网页、文档或应用程序中显示。Python提供了多种方式来实现这一需求,本文将介绍如何使用PyMuPDF(也称为fitz)库来快速高效地完成这一任务。

1. 安装PyMuPDF

首先,确保你的环境中已经安装了PyMuPDF。如果尚未安装,可以通过以下命令进行安装:

pip install PyMuPDF

2. 准备PDF文件

确保你有一个PDF文件用于转换。在本示例中,我们将使用位于

C:\Users\Administrator\Desktop\新建文件夹 (2)\aa.pdf

的PDF文件。

3. 编写转换代码

以下是将PDF转换为图片的完整Python代码:

import fitz  # PyMuPDF
import os# 指定PDF文件的路径
pdf_path = r'C:\Users\Administrator\Desktop\新建文件夹 (2)\aa.pdf'
# 定义图片保存的路径
save_path = r'C:\Users\Administrator\Desktop\新建文件夹 (2)\pdf_to_jpg'# 如果保存路径不存在,则创建该路径
if not os.path.exists(save_path):os.makedirs(save_path)# 打开PDF文件
doc = fitz.open(pdf_path)# 遍历PDF的每一页
for page_number in range(len(doc)):# 获取页面对象page = doc.load_page(page_number)# 将PDF页面转换为图片(pix对象)pix = page.get_pixmap(dpi=300)  # 设置DPI为300# 定义图片的保存路径和文件名image_path = os.path.join(save_path, f'page_{page_number + 1}.png')# 保存图片pix.save(image_path)# 关闭文档对象
doc.close()print("PDF转换完成。")

4. 运行代码

运行上述脚本,它将遍历PDF的每一页,将每页转换为300 DPI的图片,并保存到指定的文件夹中。

5. 结果

转换完成后,你将在C:\Users\Administrator\Desktop\新建文件夹 (2)\pdf_to_jpg路径下找到对应的图片文件,每个文件名格式为page_{页码}.png

结语

使用PyMuPDF将PDF转换为图片既简单又高效。无论你是在开发应用程序、处理文档,还是简单地需要在不同格式间转换PDF内容,PyMuPDF都是一个非常有用的工具。

希望这篇文章能帮助你更好地在Python项目中处理PDF文件!

相关文章:

  • 探秘Java 8 Lambda:简洁高效的集合操作
  • STM32--HAL库定时器学习记录(易懂)--持续学习
  • 【安装指南】nodejs下载、安装与配置详细教程
  • 3D人体运动重建
  • Python循环语句——while循环的基础应用
  • 【已解决】Oracle 12541 TNS 无监听程序
  • NAS系统折腾记 – Emby搭建家庭多媒体服务器
  • SOME/IP SD 协议介绍(五)使用SOME/IP-SD宣布非SOME/IP协议的协议。
  • 深入Spring MVC的工作流程
  • 【OpenCV人脸检测】写了个智能锁屏小工具!人离开电脑自动锁屏
  • ElementUI组件:Link 文字链接
  • 2.4作业
  • Makefile学习
  • MacOS 14.3 安装 brew
  • 20.HarmonyOS App(JAVA)表格布局Layout使用方法
  • 【Leetcode】101. 对称二叉树
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Intervention/image 图片处理扩展包的安装和使用
  • Java知识点总结(JavaIO-打印流)
  • Mac转Windows的拯救指南
  • maya建模与骨骼动画快速实现人工鱼
  • Mybatis初体验
  • Redis中的lru算法实现
  • vue-loader 源码解析系列之 selector
  • Xmanager 远程桌面 CentOS 7
  • 多线程 start 和 run 方法到底有什么区别?
  • 二维平面内的碰撞检测【一】
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 世界上最简单的无等待算法(getAndIncrement)
  • 数组大概知多少
  • 突破自己的技术思维
  • UI设计初学者应该如何入门?
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​马来语翻译中文去哪比较好?
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • (2)STL算法之元素计数
  • (2)STM32单片机上位机
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C#)一个最简单的链表类
  • (Git) gitignore基础使用
  • (zhuan) 一些RL的文献(及笔记)
  • (附源码)springboot教学评价 毕业设计 641310
  • .NET Core 项目指定SDK版本
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET Core中的去虚
  • .NET DataGridView数据绑定说明
  • .NET6 命令行启动及发布单个Exe文件
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET成年了,然后呢?
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚