python代码提取每页PDF转为图片

news/2024/9/20 3:54:30/ 标签: python, pdf, 开发语言

🍃作者介绍:双非本科大四网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发,目前开始人工智能领域相关知识的学习
🦅个人主页:@逐梦苍穹
📕所属专栏:人工智能
🌼您的一键三连,是我创作的最大动力🌹

本文分享一个用python代码实现提取一份PDF文件的每一页,转换为图片的程序。
效果:
在这里插入图片描述
左侧是提取出来的每一页图片,右侧是PDF原文件。
那么话不多说,上代码,代码即注释:

python"># -*- coding: utf-8 -*-
# @Author:︶ㄣ释然
# @Time: 2024/8/18 9:44
import fitz  # PyMuPDF
import os  # 用于文件夹操作def pdf_to_images(pdf_path, output_folder, dpi=300):# 如果输出文件夹不存在,则创建它if not os.path.exists(output_folder):os.makedirs(output_folder)# 打开 PDF 文件pdf_document = fitz.open(pdf_path)# 遍历每一页for page_number in range(len(pdf_document)):# 获取页面对象page = pdf_document.load_page(page_number)# 设置图像的分辨率zoom = dpi / 72  # 72 是 PDF 的默认分辨率mat = fitz.Matrix(zoom, zoom)# 将页面渲染为图像pix = page.get_pixmap(matrix=mat)# 构造输出图像文件名image_file = os.path.join(output_folder, f"page_{page_number + 1}.png")# 保存图像为 PNG 文件pix.save(image_file)print(f"Saved: {image_file}")if __name__ == "__main__":# 示例用法pdf_path = r'C:\Users\86189\Nutstore\1\我的坚果云\人工智能\transformer\seq2seq_v9.pdf'  # 替换为你的PDF文件路径output_folder = r'C:\Users\86189\Nutstore\1\我的坚果云\人工智能\transformer'  # 替换为你希望保存图像的文件夹的路径pdf_to_images(pdf_path, output_folder)

感谢大家看我文章🌹


http://www.ppmy.cn/news/1514370.html

相关文章

使用 Grafana 和 Prometheus 监控 Nginx

以下是使用 Grafana 和 Prometheus 来监控 Nginx 负载均衡的一般步骤: 一、安装 Prometheus 下载 Prometheus:从 Prometheus 官方网站下载适合你系统的版本。配置 Prometheus:编辑 Prometheus 的配置文件(通常是prometheus.yml&…

支付宝小程序websocket长连接(心跳版本)

注意点: 关闭连接一定要把那些开下来的监听全部关闭掉 1.开启连接 /*长连接*/ connectWebSocket() {let that this;my.connectSocket({url: ws://192.xx.8.xx:7780/charger-service-netty/websocket/${uni.getStorageSync(chargePointId)},header: {AccessType: a…

Android Studio(3) 使用 Kotlin DSL和 Gradle 8.7 打包远程库到 AAR 的自定义方法

背景介绍 在 Gradle 7.3 及更早版本中,通常使用 com.kezong.fat-aar 插件来打包远程库到 AAR 中,随着 Gradle 的不断升级,尤其是到 8.7 版本后,Kotlin DSL开发逐渐成为主流,fat-aar 社区没有更新,插件的兼容性问题逐渐显现。我探索一种新的自定义方法,能够在 Kotlin DS…

08.TMS570LC43入门指南——RTI模块

08.TMS570LC43入门指南——RTI模块 文章目录 08.TMS570LC43入门指南——RTI模块一、简介二、认识 RTI2.1 特性2.2 总体模块介绍2.3 计数操作介绍2.4 中断/DMA 请求 三、项目实现3.1 硬件部分3.2 软件部分3.2.1 HALCoGen 配置3.2.2 CCS 配置3.2.3 运行结果 五、写在最后 ​ 一、…

老品新生机,新品快速上位:测评在维护亚马逊产品排名中的作用

亚马逊平台高度重视用户体验,用户评论在平台算法中占据重要权重,直接影响产品的排名和销量。因此,产品测评对于亚马逊卖家来说至关重要,不仅有助于新品上架时提升排名和转化率,还能维护老产品的Listing排名。为了安全有…

【C++二分查找 贪心】2576. 求出最多标记下标

本文涉及的基础知识点 C二分查找 贪心:决策包容性 LeetCode2576. 求出最多标记下标 给你一个下标从 0 开始的整数数组 nums 。 一开始,所有下标都没有被标记。你可以执行以下操作任意次: 选择两个 互不相同且未标记 的下标 i 和 j &#x…

2025计算机毕设50条小众好做的Java题目【计算机毕设选题推荐】

随着2025年的到来,计算机专业的学生们又迎来了毕业设计的关键时刻。对于大多数学生来说,选择一个合适的毕业设计题目往往是一项艰巨的任务。本文旨在为那些正在为毕业设计题目烦恼的同学们提供一些灵感和建议,特别是针对使用Java技术栈的同学…

centos 部署 scrapy 爬虫详细教程

部署流程 参考环境安装 pyenv安装依赖安装 pyenv配置环境变量root 用户~/.bashrc~/.profile~/.bash_profileZsh 用户重启 shell 使用 pyenv 安装 Python 3.9.1安装Scrapyd-Client安装Scrapysystemd添加服务文件 参考 【华为仓库】 【pyenv 多版本的Python管理工具】 【pyenv-v…

.NET系列 定时器

net一共4种定时器 System.Windows.Forms.Timer 类型 》》WinForm专用System.Windows.Threading.DispatcherTime类型》》WPF专用System.Threading.Timer类型》》》它使用 ThreadPool 线程来执行定时操作System.Timers.Timer类型 》》这种很老了。 它使用基于底层计时…

每天一个数据分析题(四百九十七)- 序列模式挖掘

序列模式挖掘 (sequence pattern mining )是指挖掘相对时间或其他模式出现频率高的模式,典型的应用还是限于离散型的序列。下列哪个选项不属于序列模式的时限约束? A. 最大跨度约束 B. 主键约束 C. 最小间隔和最大间隔约束 D. 窗口大小约…

vue3 img标签动态加载图片

<img :src"getImgUrl(item.name)" alt"">//组合式下 methods里方法 getImgUrl(name){let url new URL(../../../assets/images/bigscreen/${name}.png, import.meta.url).hrefreturn url},

【微信小程序】自定义组件 - 数据、方法和属性

1. data 数据 2. methods 方法 在小程序组件中&#xff0c;事件处理函数和自定义方法需要定义到 methods 节点中&#xff0c;示例代码如下&#xff1a; 3. properties 属性 在小程序组件中&#xff0c;properties 是组件的对外属性&#xff0c;用来接收外界传递到组件中的数…

IDEA工具设置默认使用maven的settings.xml文件

第一步&#xff1a;打开idea工具&#xff0c;选中 File ——> New Projects Setup ——> Settings for New Projects 第二步&#xff1a;先设置下自动构建项目这个选项 第三步&#xff1a;选中 Build Tools ——> Maven&#xff0c;让后就可以设置自己安转的maven和se…

Modbus初学者教程,第六章:Modbus 答疑

第六章&#xff1a;Modbus 答疑 平时调试Modbus设备&#xff0c;或者学习Modbus协议&#xff0c;推荐一款Modbus主从站模拟器&#xff1a; 主站下载地址&#xff1a;Modbus从站模拟器 从站下载地址&#xff1a;Modbus主站模拟器 我从哪里开始与我的 Modbus 设备通信&#xff1f…

无人机:航拍书籍推荐

写在前面 学习航拍&#xff0c;整理一些书籍分享理解不足小伙伴帮忙指正 &#x1f603;,生活加油 99%的焦虑都来自于虚度时间和没有好好做事&#xff0c;所以唯一的解决办法就是行动起来&#xff0c;认真做完事情&#xff0c;战胜焦虑&#xff0c;战胜那些心里空荡荡的时刻&…

克服编程挫折:从Bug的迷宫中寻找出口与面对算法保持冷静的策略

在编程学习的道路上&#xff0c;挫折感无疑是每个学习者都必须面对的挑战之一。它们仿佛是一座座高墙&#xff0c;阻挡我们前进的步伐。然而&#xff0c;正如许多有经验的编程高手所证明的那样&#xff0c;挫折并不是终点&#xff0c;而是成长和进步的催化剂。本文将分享一些有…

【实战场景】如何优雅实现分页

【实战场景】如何优雅实现分页 开篇词&#xff1a;干货篇&#xff1a;1.添加PageHelper依赖2.添加PageHelper配置3.使用 PageHelper4.自定义Pageable注解 总结&#xff1a;1.执行查询2.处理分页结果3.注意事项 我是杰叔叔&#xff0c;一名沪漂的码农&#xff0c;下期再会&#…

数据仓库ETL开发

在企业数字化转型的过程中&#xff0c;数据仓库已经成为了企业管理和决策的重要工具。数据仓库ETL开发是构建数据仓库的关键步骤之一&#xff0c;它可以帮助企业从源系统中抽取、清洗、转换和整合数据&#xff0c;方便企业进行管理和分析。本文将介绍如何高效实现数据仓库ETL开…

Notepad--文本编辑工具 for Mac教程【苹果电脑-简单轻松上手-免费Mac软件推荐】

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff0c;将其拖入应用程序中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 三、运行测试解决“软件已损坏&#xff0c;无法打开”问题&#xff0c;若没有该问题&#xff0c;可…

Vue3 指令 6

Vue3 指令&#xff08;Directive&#xff09;是 Vue3 中的一种特殊的语法&#xff0c;用于在模板中添加自定义的行为。指令可以用来修改 DOM、监听事件、绑定数据等。下面是 Vue3 指令的主要类型&#xff1a; 1. v-binding v-binding 指令用于绑定数据到 HTML 属性上。例如&a…