Python PDF转图片自定义输出

PDF转图片自定义输出

一、引入必要库

|-------------|-------------------------------|
| 1 2 | import fitz import os |

也可以检查一下版本就是了:print(fitz.__doc__)

上一篇文章已经介绍过要使用的库,和写代码要用到的思路了。我们直接开始:

二、找到文件

首先是我们要获取用户的输入:也就是说用户输入路径,我们呢只对这路径下面的文件进行处理:使用input()方法即可

|-----------|---------------------------------------|
| 1 | dir=input("请输入要处理的文件夹或者文件路径") |

当然我们可以展开让用户选择是否处理子文件夹,我这里暂且不谈。

那么我们需要判断用户输入的是一个pdf文件还是一个文件夹,这里使用介绍过的os.path.isdir()方法,当然用isfile也是一样,这里不做多余的事情就用这一个即可:

|---------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 | if os.path.isdir(dir): print("你选择了批处理文件夹",dir) path_list = os.listdir(dir) filelist=[] for filename in path_list: fileway=dir + "\\" + filename if os.path.isdir(dir+"\\"+filename) == False: #如果不是文件夹 filelist.append(fileway) #把文件路径加入列表 else: print("你选择了处理单个文件",dir) |

找到文件路径之后把他们加入了一个列表,接下来就是对他们的处理,这里我们选择向用户了解处理的方式和输出的方式。

|-----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 | severtype = input("请选择处理的方式:\n1.转png\n2.转jpg\n3.仅改名\n4.更多\n") nametype = input("请选择输出的文件命名格式:\n1.原文件相同带页标\n2.生成同名文件夹page加页标\n3.仅编号\n") outway = getoutway() # 获取输出目录 |

注意这里的getoutway():

|-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 | def getoutway(): #确保路径正确 outway=input("接下来选择处理后输出的路径") if os.path.isdir(outway) == False: print("请输入正确路径") outway=getoutway() return outway |

然后我们就得到用户的想法了:这时我们需要对文件进行用户想要的操作,也就是一系列选择中找到用户需要的:

我们开始编写文件处理模块:这里默认使用单位矩阵处理pdf生成图像文件,我们可以生成更大的文件或者让用户设定dpi,这里我只实现设定缩放功能,dpi设置放在以后再完善。

相关推荐
夏天的清晨3 分钟前
C++入门学习
开发语言·c++·学习
Patrick在香港4 分钟前
MCP 的 initialize 握手真的没了?67 行标准库实测 2026-07-28 规范
python·agent·claude·mcp·json-rpc
新鲜势力呀7 分钟前
PHP 文件上传系统实战:从上传卡顿到分片上传 + 秒传 + 云存储架构完整优化方案
开发语言·架构·php
vx_Biye_Design7 分钟前
springboot角色扮演服务平台65161-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·spring·课程设计
追烽少年x10 分钟前
从零构建一个3D点云预览器:Python + PySide6 + pyqtgraph 实战
python·3d
程序员老陆22 分钟前
从语法糖到类型系统:深度拆解 C++ Lambda 与可调用对象的“血缘关系”
开发语言·c++·程序设计
weixin_4404016923 分钟前
质朴的爬虫+数据处理
爬虫·python·数据分析·pandas
(Charon)23 分钟前
【C++面试】设计模式:手写单例模式与工厂模式
开发语言·c++
估值探索者24 分钟前
【Python量化系统工程实战 #01】数据存储选型 CSVSQLiteMySQL 对比与 SQLite 实战建库
开发语言·jvm·python·sqlite·api接口·数据api接口·股票数据api接口
计算机毕业编程指导师28 分钟前
计算机毕设答辩技巧:基于Hadoop+Django的公共交通运营数据分析与可视化系统怎么做 源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·交通运行