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

python小脚本——批量将PDF文件转换成图片

语言:python 3

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

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

例如:

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

这里提供两种源码,第一种是在代码中手动添加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()

第二种是点击运行后,弹出窗口选择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/135823.html

相关文章:

  • cUrl的介绍和基本使用
  • ONLYOFFICE协作空间服务器如何一键安装自托管私有化部署
  • java分析公司名称:AI智能工具助力提取地名、品牌名、行业名
  • php 二维数组排序
  • postgresql 性能调优
  • 派森 #P128. csv存json格式
  • iPhone开启“轻点唤醒”功能但点击屏幕无反应怎么解决?
  • 论AI与大数据之间的关系
  • 6.ES基础概念及术语详细解读
  • 大语言模型微调实践——LoRA 微调细节
  • 国内ChatGPT对比与最佳方案
  • 绝美的古诗词AI作画,惊艳到我了!
  • 数据结构—排序
  • GraphScope,开源图数据分析引擎的领航者
  • 【Linux】邮件服务器搭建 postfix+dovecot+mysql (终极版 超详细 亲测多遍无问题)
  • GitLab与GitLab Runner安装(RPM与Docker方式),CI/CD初体验
  • vue3+element下拉多选框组件
  • Python科研绘图--Task02
  • [保研/考研机试] KY11 二叉树遍历 清华大学复试上机题 C++实现
  • 【官方中文文档】Mybatis-Spring #简介
  • 稳定扩散ControlNet v1.1 权威指南
  • 【golang】结构体及其方法的使用(struct)
  • 【数据结构】-- 排序算法习题总结
  • 第十章 CUDA流(stream)实战篇
  • 如何进行电脑文件夹分类与整理?
  • kafka-python 消费者消费不到消息
  • 穿起“新架构”的舞鞋,跳一支金融数字化转型的华尔兹
  • SpringBoot 常用注解
  • k8s deployment创建pod流程图
  • C++ 逗号运算符