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

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 + "\\" + filenameif 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设置放在以后再完善。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SQL_UNION
  • LeetCode 每日一题 最佳观光组合
  • 浅谈割边及边双连通分量(e-dcc)
  • uni-icons自定义图标详细步骤及踩坑经历
  • 【hot100-java】【完全平方数】
  • iOS 巨魔技巧:一键汉化巨魔商店
  • 【自定义函数】讲解
  • Python Web 面试题
  • 4.结构型设计模式 - 第1回:引言与适配器模式 (Adapter Pattern) ——设计模式入门系列
  • 架构设计笔记-5-软件工程基础知识
  • 黑马智数Day2
  • 【protobuf】ProtoBuf的学习与使用⸺C++
  • Go语言语法基础
  • 蓝禾,汤臣倍健,三七互娱,得物,顺丰,快手,游卡,oppo,康冠科技,途游游戏,埃科光电25秋招内推
  • GNU链接器(LD):设置入口点(ENTRY命令)的用法及实例解析
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • __proto__ 和 prototype的关系
  • 【知识碎片】第三方登录弹窗效果
  • 78. Subsets
  • Akka系列(七):Actor持久化之Akka persistence
  • Docker下部署自己的LNMP工作环境
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Meteor的表单提交:Form
  • PHP CLI应用的调试原理
  • Python学习笔记 字符串拼接
  • Redux系列x:源码分析
  • Web Storage相关
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • - 概述 - 《设计模式(极简c++版)》
  • 高度不固定时垂直居中
  • 聊一聊前端的监控
  • 码农张的Bug人生 - 见面之礼
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 入门到放弃node系列之Hello Word篇
  • 深入浅出Node.js
  • 携程小程序初体验
  • 怎么把视频里的音乐提取出来
  • zabbix3.2监控linux磁盘IO
  • ​Java基础复习笔记 第16章:网络编程
  • #Z0458. 树的中心2
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (C#)获取字符编码的类
  • (SERIES10)DM逻辑备份还原
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (十一)手动添加用户和文件的特殊权限
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)关于多人操作数据的处理策略
  • (转)树状数组
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET大文件上传知识整理
  • .NET的微型Web框架 Nancy
  • .NET是什么
  • .so文件(linux系统)
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示