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

脚本:PDF文件批量转换成图片(python3)

文章目录

  • 语言
  • 用法
  • 源码1
  • 源码2

语言

语言:python 3

用法

用法:选择PDF文件所在的目录,点击 确定 后,自动将该目录下的所有PDF转换成单个图片,图片名称为: pdf文件名.page_序号.jpg

如运行中报错,需要自行根据报错内容安装缺失的库

例如:

#安装库
pip install pyautogui#安装库
pip install  pillow

提供两种源码

源码1

第一种是在代码中手动添加pdf所在目录

import os
import glob
from PyPDF2 import PdfReader
from pdf2image import convert_from_pathpdf_dir = "path/to/pdf_dir/"  #pdf目录# 遍历目录中的PDF文件
pdf_files = glob.glob(os.path.join(pdf_dir, "*.pdf"))# 遍历每个PDF文件,并将其转换为图片
for pdf_file in pdf_files:# 创建PdfReader对象pdf = open(pdf_file, 'rb')pdf_reader = PdfReader(pdf)# 遍历PDF的页面并将其转换为图片for page_num in range(len(pdf_reader.pages)):# 获取页面对象page = pdf_reader.pages[page_num]# 将PDF页面转换为图像images = convert_from_path(pdf_file, first_page=page_num+1, last_page=page_num+1)# 定义图像保存路径filename = os.path.splitext(os.path.basename(pdf_file))[0]image_path = os.path.join(pdf_dir, f"{filename}_page_{page_num+1}.jpg")# 保存图像for i, image in enumerate(images):if i == 0:image.save(image_path, "JPEG")else:image_path = os.path.join(pdf_dir, f"{filename}_page_{page_num+1}_{i+1}.jpg")image.save(image_path, "JPEG")# 关闭PDF文件pdf.close()

源码2

第二种是点击运行后,弹出窗口选择PDF所在文件夹,程序运行对该文件夹下的所有PDF文件转换成图片

#手动选择目录下的pdf文件
import os
from tkinter import Tk
from tkinter.filedialog import askdirectory
from PyPDF2 import PdfReader
from pdf2image import convert_from_path# 打开选择目录的对话框
Tk().withdraw()  # 隐藏Tkinter根窗口
pdf_dir = askdirectory(title="选择PDF所在目录")# 遍历目录中的PDF文件
pdf_files = [f for f in os.listdir(pdf_dir) if f.endswith(".pdf")]# 遍历每个PDF文件,并将其转换为图片
for pdf_file in pdf_files:# 创建PdfReader对象pdf_path = os.path.join(pdf_dir, pdf_file)pdf = open(pdf_path, 'rb')pdf_reader = PdfReader(pdf)# 遍历PDF的页面并将其转换为图片for page_num in range(len(pdf_reader.pages)):# 获取页面对象page = pdf_reader.pages[page_num]# 将PDF页面转换为图像images = convert_from_path(pdf_path, first_page=page_num+1, last_page=page_num+1)# 定义图像保存路径filename = os.path.splitext(pdf_file)[0]image_path = os.path.join(pdf_dir, f"{filename}_page_{page_num+1}.jpg")# 保存图像for i, image in enumerate(images):if i == 0:image.save(image_path, "JPEG")else:image_path = os.path.join(pdf_dir, f"{filename}_page_{page_num+1}_{i+1}.jpg")image.save(image_path, "JPEG")# 关闭PDF文件pdf.close()

相关文章:

脚本:PDF文件批量转换成图片(python3)

文章目录 语言用法源码1源码2 语言 语言:python 3 用法 用法:选择PDF文件所在的目录,点击 确定 后,自动将该目录下的所有PDF转换成单个图片,图片名称为: pdf文件名.page_序号.jpg 如运行中报错,需要自行…...

Spring和mybatis整合

一、Spring整合MyBatis 1. 导入pom依赖 1.1 添加spring相关依赖(5.0.2.RELEASE) spring-core spring-beans spring-context spring-orm spring-tx spring-aspects spring-web 1.2 添加mybatis相关依赖 mybatis核心:mybatis(3.4.5) Mybatis分页:pagehel…...

应知道的python基础知识

1、运算符 2、特殊情况下的逻辑运算 3、循环中的else 3.1 while else 3.2 for else 4、列表相关操作 列表的相关操作 4.1增(append, extend, insert) 通过append可以向列表添加元素:列表.append(新元素数据)通过extend可以将另一个列表中的元素逐一添加到列表中:列表.exte…...

FFmpeg<第一篇>:环境配置

1、官网地址 http://ffmpeg.org/download.html2、linux下载ffmpeg 下载: wget https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2解压: tar xvf ffmpeg-snapshot.tar.bz23、FFmpeg ./configure编译参数汇总 解压 ffmpeg-snapshot.tar.bz2 之后&…...

深度学习:Sigmoid函数与Sigmoid层区别

深度学习:Sigmoid函数与Sigmoid层 1. Sigmoid神经网络层 vs. Sigmoid激活函数 在深度学习和神经网络中,“Sigmoid” 是一个常见的术语,通常用来表示两个相关但不同的概念:Sigmoid激活函数和Sigmoid神经网络层。这两者在神经网络…...

❤ Ant Design Vue 2.28的使用

❤ Ant Design Vue 2.28 弹窗 //按钮 <a-button type"primary" click"showModal">Open Modal</a-button>//窗口 <a-modal v-model:visible"visible" title"Basic Modal" ok"handleOk"><p>Some con…...

R语言02-R语言中的向量

概念 在R语言中&#xff0c;向量&#xff08;Vector&#xff09;是最基本的数据结构之一&#xff0c;用于存储相同类型的多个元素。向量可以包含数值、字符、逻辑值等&#xff0c;但其中的所有元素必须具有相同的数据类型。向量可以通过c()函数创建&#xff0c;也可以通过其他…...

windows linux 都可执行的脚本 bat, shell 共存

核心, 执行一行解析一行 windows:执行的地方进行解析, 可以任意跳转执行; bash从上往下解析执行; 一行行解析发现语法错误; 差异: windows可以部分不解析; linux需要从上往下解析合法; 总结:linux, windows可以一上一下共存 # linux code# windows code 关键: 脚本解析的差…...

MATLAB图论合集(二)计算最小生成树

今天来介绍第二部分&#xff0c;图论中非常重要的知识点——最小生成树。作为数据结构的理论知识&#xff0c;Prim算法和克鲁斯卡尔算法的思想此处博主不详细介绍&#xff0c;建议在阅读本帖前熟练掌握。 对于无向带权图&#xff0c;在MATLAB中可以直接以邻接矩阵的方式创建出来…...

unity 模型显示在UI上 并交互(点击、旋转、缩放)

项目工程&#xff1a;unity模型显示在UI上并交互&#xff08;点击、旋转、缩放&#xff09;资源-CSDN文库 1.在Assets创建 Render Texture&#xff08;下面会用到&#xff09;&#xff0c;根据需要设置Size 2.创建UIRawImage&#xff0c;并把Render Texture赋上 3.创建相机&am…...

html实现页面切换、顶部标签栏(可删、可切换,点击左侧超链接出现标签栏)

一、在一个页面&#xff08;不跨页面&#xff09; 效果&#xff1a; 代码 <!DOCTYPE html> <html><head><style>/* 设置标签页外层容器样式 */.tab-container {width: 100%;background-color: #f1f1f1;overflow: hidden;}/* 设置标签页选项卡的样式…...

n-皇后问题(DFS)

n−皇后问题是指将 n 个皇后放在 nn 的国际象棋棋盘上&#xff0c;使得皇后不能相互攻击到&#xff0c;即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 n&#xff0c;请你输出所有的满足条件的棋子摆法。 输入格式 共一行&#xff0c;包含整数 n。 输出…...

漏洞利用和权限提升

使用Kali Linux进行漏洞利用和权限提升是渗透测试过程中的一部分&#xff0c;用于评估系统的安全性。 漏洞利用&#xff1a; 选择目标&#xff1a; 首先&#xff0c;确定 要进行漏洞利用的目标系统。这可能是一个具有已知漏洞的应用程序、服务或操作系统。 收集信息&#xff…...

开源网安受邀参加软件供应链安全沙龙,推动企业提升安全治理能力

​8月23日下午&#xff0c;合肥软件行业软件供应链安全沙龙在中安创谷科技园举办。此次沙龙由合肥软件产业公共服务中心联合中安创谷科技园公司共同主办&#xff0c;开源网安软件供应链安全专家王晓龙、尹杰受邀参会并带来软件供应链安全方面的精彩内容分享&#xff0c;共同探讨…...

回归分析扫盲:为什么非线性模型不能直接用最优子集选择法

最近有人给我发了篇文章&#xff1a; 一个问题有一堆变量&#xff0c;我们要选取哪些变量来建模呢&#xff1f;我们来看看这篇文章是怎么做的&#xff1a; 这个方法简单来说就是&#xff1a;对于这一堆变量&#xff0c;我们每次尝试剔除其中一个变量&#xff0c;然后用剩下的变…...

单例模式简介

概念&#xff1a; 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供全局访问点。单例模式的核心思想是限制某个类只能创建一个对象实例&#xff0c;并提供对该实例的全局访问。这样可以避免多个…...

WPF自定义命令及属性改变处理

1、项目建构 2、自定义命令 namespace WpfDemo.Base {public class MyCommand : ICommand{Action executeAction;public MyCommand(Action action){executeAction action;}public event EventHandler? CanExecuteChanged;public bool CanExecute(object? parameter){retu…...

macbook m1 docker中使用go

已经有一个centos8的镜像&#xff0c;本来打算在centos8中安装go 安装方法&#xff1a; # 1.下载go的安装包 mkdir install && cd install # 任意创建个文件夹 wget https://go.dev/dl/go1.20.2.linux-amd64.tar.gz# 2. 解压 tar -C xzf go1.20.2.linux-amd64.tar.g…...

【Hello Network】DNS协议 NAT技术 代理服务器

本篇博客简介&#xff1a;介绍DNS协议 NAT技术和代理服务器 网络各协议补充 DNSDNS背景DNS介绍DNS总结域名简介 NAT技术NAT技术背景NAT IP转换过程NAPTNAT技术缺陷NAT和代理服务器 网络协议总结应用层传输层网络层数据链路层 DNS DNS是一整套从域名映射到IP的系统 DNS背景 为…...

Android 使用模拟器模拟Linux操作系统

1. 简介 在Android手机上使用模拟器模拟ubuntu等操作系统&#xff0c;便于测试 2. 软件准备 Termux&#xff1a;是一款 Android 终端模拟器和 Linux 环境应用程序&#xff0c;无需 root 或设置即可直接运行。虽然酷安和谷歌菜市场都能下载&#xff0c;但这些渠道都很久没更新…...

ENVI 5.3 vs 5.6 处理GF-6/GF-7数据实测:版本差异、流程对比与效率优化心得

ENVI 5.3与5.6处理GF-6/GF-7数据深度评测&#xff1a;从版本差异到实战优化 当高分卫星数据成为遥感分析的主流选择&#xff0c;ENVI作为行业标杆软件&#xff0c;其版本迭代对数据处理效率的影响往往被低估。本文将基于真实项目经验&#xff0c;拆解ENVI 5.3与5.6在处理GF-6/G…...

别再手动汉化了!用Docker Compose持久化配置Greenbone GVM中文界面(附yml文件修改)

持久化配置Greenbone GVM中文界面的Docker Compose实战指南 对于安全工程师和运维人员来说&#xff0c;Greenbone Vulnerability Management&#xff08;GVM&#xff09;是进行漏洞扫描的利器。但每次重启容器后都需要重新配置中文界面&#xff0c;这无疑增加了维护成本。本文…...

LiuJuan Z-Image Generator快速上手:生成图批量后处理(锐化/降噪/色彩校正)集成

LiuJuan Z-Image Generator快速上手&#xff1a;生成图批量后处理&#xff08;锐化/降噪/色彩校正&#xff09;集成 1. 引言&#xff1a;从生成到精修&#xff0c;一步到位 你用过AI生成图片吗&#xff1f;是不是经常遇到这样的问题&#xff1a;好不容易生成了一张构图不错的…...

终极视频修复指南:如何使用untrunc拯救损坏的MP4文件

终极视频修复指南&#xff1a;如何使用untrunc拯救损坏的MP4文件 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否曾经遇到过珍贵的视频文件突然无法播放&…...

ENSP实战:从零构建企业级WLAN网络

1. 企业级WLAN网络规划与ENSP环境搭建 第一次接触企业级WLAN部署时&#xff0c;我被各种专业术语搞得晕头转向。直到用华为ENSP模拟器实操了几次&#xff0c;才发现原来搭建无线网络就像搭积木一样有趣。ENSP作为华为官方推出的网络仿真平台&#xff0c;完美复现了真实设备的操…...

Element Plus表格滚动卡顿?试试这个Vue3封装方案,性能提升明显

Vue3Element Plus表格性能优化实战&#xff1a;平滑滚动与内存管理 Element Plus的el-table组件在企业级后台系统中广泛应用&#xff0c;但当数据量达到500行以上时&#xff0c;滚动卡顿、内存飙升的问题开始显现。本文将分享一套经过生产环境验证的优化方案&#xff0c;通过数…...

Ubuntu 20.04 LTS静态IP配置避坑指南:从NetworkManager到netplan的完整流程

Ubuntu 20.04 LTS静态IP配置深度解析&#xff1a;从NetworkManager到netplan的无缝迁移 在服务器管理和开发环境中&#xff0c;稳定的网络连接是基础中的基础。Ubuntu 20.04 LTS作为长期支持版本&#xff0c;其网络配置方式从传统的NetworkManager逐渐转向了更现代的netplan工具…...

Remult项目实战:如何从零构建企业级CRM系统的完整流程

Remult项目实战&#xff1a;如何从零构建企业级CRM系统的完整流程 【免费下载链接】remult Full-stack CRUD, simplified, with SSOT TypeScript entities 项目地址: https://gitcode.com/gh_mirrors/re/remult 在当今快速发展的商业环境中&#xff0c;企业级CRM系统已成…...

CCMusic跨平台部署指南:Windows/Linux/macOS全适配

CCMusic跨平台部署指南&#xff1a;Windows/Linux/macOS全适配 音乐风格识别从未如此简单——无论你用哪种电脑系统 1. 开篇&#xff1a;为什么需要跨平台部署方案 还在为音乐风格分类工具的安装头疼吗&#xff1f;不同的操作系统、不同的环境配置、复杂的依赖关系...这些麻烦…...

3分钟彻底解决Windows安装错误2502/2503:AtlasOS一键修复方案揭秘 [特殊字符]

3分钟彻底解决Windows安装错误2502/2503&#xff1a;AtlasOS一键修复方案揭秘 &#x1f680; 【免费下载链接】Atlas &#x1f680; An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.…...