当前位置: 首页 > 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()
http://www.lryc.cn/news/139811.html

相关文章:

  • Spring和mybatis整合
  • 应知道的python基础知识
  • FFmpeg<第一篇>:环境配置
  • 深度学习:Sigmoid函数与Sigmoid层区别
  • ❤ Ant Design Vue 2.28的使用
  • R语言02-R语言中的向量
  • windows linux 都可执行的脚本 bat, shell 共存
  • MATLAB图论合集(二)计算最小生成树
  • unity 模型显示在UI上 并交互(点击、旋转、缩放)
  • html实现页面切换、顶部标签栏(可删、可切换,点击左侧超链接出现标签栏)
  • n-皇后问题(DFS)
  • 漏洞利用和权限提升
  • 开源网安受邀参加软件供应链安全沙龙,推动企业提升安全治理能力
  • 回归分析扫盲:为什么非线性模型不能直接用最优子集选择法
  • 单例模式简介
  • WPF自定义命令及属性改变处理
  • macbook m1 docker中使用go
  • 【Hello Network】DNS协议 NAT技术 代理服务器
  • Android 使用模拟器模拟Linux操作系统
  • 机器学习基础之《分类算法(5)—朴素贝叶斯算法原理》
  • # Go学习-Day6
  • 分布式 - 服务器Nginx:一小时入门系列之 HTTPS协议配置
  • 探秘Linux系统性能监控神器!Linux和Python技术持续学习者必看!
  • 文心一言续写太监小说《名侦探世界的巫师》
  • Solidity 合约安全,常见漏洞(第三篇)
  • Linux安装Redis数据库,无需公网IP实现远程连接
  • 智慧政务,长远布局——AIGC引领,加速推进数字化政府建设
  • 中央处理器(CPU):组成、指令周期、数据通路、控制方式、控制器、指令流水线,补充(多处理器系统、硬件多线程)
  • 开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比
  • Nginx的HTTPS部署与安全性能优化