python-pdf2image

news/2024/11/18 21:26:22/文章来源:https://www.cnblogs.com/thx2199/p/18199049

关于使用python将pdf转图片,网上大部分教程在讲pdf2image包
https://pypi.org/project/pdf2image/

image

它需要用到一个poppler的程序,但是给的下载链接都过期了,去github下载最新项目发现路径下只有Library、share

https://gh.jiasu.in/https://github.com/oschwartz10612/poppler-windows/releases/download/v0.90.1/release.zip
安装完成记得重启电脑

from pdf2image import convert_from_path
from PIL import Image
import osdef getAllSub(path, dirlist=[], filelist=[]):"""递归获取所有文件目录、和文件参数:path -- 要获取所有文件的目录dirlist -- 保存所有文件夹路径filelist -- 保存所有文件路径"""flist = os.listdir(path)for filename in flist:subpath = os.path.join(path, filename)if os.path.isdir(subpath):dirlist.append(subpath)		# 如果是文件夹,添加到文件夹列表中getAllSub(subpath, dirlist, filelist)	# 向子文件内递归if os.path.isfile(subpath):filelist.append(subpath)	# 如果是文件,添加到文件列表中return dirlist, filelistdef convert_pdf_to_jpg(pdf_path, output_folder):"""将PDF文件转换为JPG图像。参数:pdf_path -- PDF文件的路径output_folder -- 保存转换后JPG图像的文件夹路径"""# 确保输出目录存在os.makedirs(output_folder, exist_ok=True)# 将PDF转换为图像列表images = convert_from_path(pdf_path)for i, image in enumerate(images):# 构建输出文件名jpg_filename = os.path.join(output_folder, f"page_{i+1}.jpg")# 保存每一页为JPGimage.save(jpg_filename, 'JPEG')# 使用示例
pdf_file = ''
output_dir = ''
convert_pdf_to_jpg(pdf_file, output_dir)# 指定文件夹路径
# directory_path = ''
# dirlist, filelist = getAllSub(directory_path)
# print(filelist)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/708093.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一对一视频聊天源码,水印功能实现方案不容错过

一对一视频聊天源码,水印功能实现方案不容错过一、基于原图生成水印图片(后端)这种方案就是将 原图片 添加水印之后生成了 新图片,后续在一对一视频聊天源码前端页面进行展示是后端接口不返回原图片,而是返回带有水印的图片即可。这种方式最大的优点就是安全,因为 水印图…

如何从多个文件夹内转移全部文件(忽略文件夹的结构)(进行复制)(再打包)

首先,需要用到的这个工具:度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 04文件夹里面有只有1个名称为"1"的文件夹,“1”里面有“2”,“2”有“3”,“3”有“4”,从“1”开始,都有5个兔兔的图片,这是“1”里面的文件夹结构,现在要做的就是忽略文件夹结构,提…

安装vue/cli报错问题解决

在管理员终端中输入命令:npm i -g @vue/cli错误原因证书已过期,需要安装淘宝镜像npm config set registry https://registry.npmmirror.com使用cnpm安装脚手架报错cnpm i -g @vue/cli 这个错误表明你尝试执行的 cnpm 命令无法加载,因为 PowerShell 策略不允许执行该脚本文件…

如何定时关闭程序

首先,需要用到的这个工具:度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 前几步的流程参考之前发过的文章: 《快捷自由定时重启、注销、关机》只不过最后的地方,选择 关闭程序 ,再填写程序名称即可补充:如何找出程序名称常规方法:从C、D、E等盘里面去找从任务管理器找:1…

一对一视频app开发,RabbitMQ数据隔离步骤详解

一对一视频app开发,RabbitMQ数据隔离详解一、自动创建影子队列因为SpringAMQP中的中的关键方法是私有的,无法通过继承的方式进行实现对以配置好的队列进行扩展,所以需要自定义该类,来实现对自动创建影子队列,并和交换器进行绑定代码实现改造RabbitListenerAnnotationBeanP…

3、Oracle 中的过滤、排序

最近项目要用到Oracle,奈何之前没有使用过,所以在B站上面找了一个学习视频,用于记录学习过程以及自己的思考。 视频链接: 【尚硅谷】Oracle数据库全套教程,oracle从安装到实战应用 如果有侵权,请联系删除,谢谢。更加详细的教程,可以直接观看此链接Oracle教程 1、过滤 1…

一对一视频聊天源码,JDBC数据源隔离方法

在开发一对一视频聊天源码时,数据隔离需要对DB,Redis,RabbitMQ进行数据隔离,接下来主要介绍一下JDBC数据源隔离方法。通过实现Spring动态数据源AbstractRoutingDataSource,通过ThreadLocal识别出来压测数据,如果是压测数据就路由到影子库,如果是正常流量则路由到主库,通过…

解锁服务器连接状态新姿势:tcping工具助你高效诊断网络连通性

使用 tcping 工具检测服务器连接状态使用 tcping 工具检测服务器连接状态 在IT运维环境中,由于安全考虑,很多服务器和交换机可能会禁用ICMP(Internet Control Message Protocol)响应,即“ping”请求,以防止ICMP FLOOD攻击和不必要的资源消耗。然而,运维人员仍需要一种方…

lazarus交叉编译

lazarus交叉编译lazarus交叉编译 虽然lazarus可以安装在windows,linux,macos。。操作系统上面,但是交叉编译有其独到的方便之处,比如,可以在windows上用lazarus编译所有OS平台的程序。 1)下载并编译fpcupdeluxe 下载地址:https://github.com/LongDirtyAnimAlf/fpcupdeluxe…

读人工智能时代与人类未来笔记06_机器学习的力量

读人工智能时代与人类未来笔记06_机器学习的力量1. 挑战 1.1. 不同的目标和功能需要不同的训练技术 1.2. 我们必须关注人工智能的潜在风险 1.2.1. 应对日益盛行的人工智能将带来的风险,是一项必须与该领域的进步并行的任务 1.3. 我们…

[转帖]JVM内存配置最佳实践

https://help.aliyun.com/zh/sae/use-cases/best-practices-for-jvm-heap-size-configuration 如果JVM堆空间大小设置过大,可能会导致Linux系统的OOM Killer被激活,进而结束(kill)Java应用进程,在容器环境下可能会表现为频繁异常重启。本文介绍在容器环境下JVM堆参数的配…

高通在推动混合 AI 规模化 扩展方面独具优势

高通在推动混合 AI 规模化 扩展方面独具优势 摘要 正如白皮书第一部分所言,在云端和终端进行分布式处理的混合 AI 才是 AI 的未来。混合 AI 架 构,或仅在终端侧运行 AI,能够在全球范围带来成本、能耗、性能、隐私、安全和个性化优势。 高通正在助力实现随时随地的智能计算。…