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

python批量将PDF文件转换成图片的实现代码

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

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

例如:

1

2

3

4

#安装库

pipinstallpyautogui

#安装库

pipinstallpillow

这里提供两种源码,第一种是在代码中手动添加pdf所在目录

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

importos

importglob

fromPyPDF2importPdfReader

frompdf2imageimportconvert_from_path

pdf_dir="path/to/pdf_dir/"#pdf目录

# 遍历目录中的PDF文件

pdf_files=glob.glob(os.path.join(pdf_dir,"*.pdf"))

# 遍历每个PDF文件,并将其转换为图片

forpdf_fileinpdf_files:

# 创建PdfReader对象

pdf=open(pdf_file,'rb')

pdf_reader=PdfReader(pdf)

# 遍历PDF的页面并将其转换为图片

forpage_numinrange(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")

# 保存图像

fori, imageinenumerate(images):

ifi==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文件转换成图片

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

#手动选择目录下的pdf文件

importos

fromtkinterimportTk

fromtkinter.filedialogimportaskdirectory

fromPyPDF2importPdfReader

frompdf2imageimportconvert_from_path

# 打开选择目录的对话框

Tk().withdraw()# 隐藏Tkinter根窗口

pdf_dir=askdirectory(title="选择PDF所在目录")

# 遍历目录中的PDF文件

pdf_files=[fforfinos.listdir(pdf_dir)iff.endswith(".pdf")]

# 遍历每个PDF文件,并将其转换为图片

forpdf_fileinpdf_files:

# 创建PdfReader对象

pdf_path=os.path.join(pdf_dir, pdf_file)

pdf=open(pdf_path,'rb')

pdf_reader=PdfReader(pdf)

# 遍历PDF的页面并将其转换为图片

forpage_numinrange(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")

# 保存图像

fori, imageinenumerate(images):

ifi==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()

到此这篇关于python批量将PDF文件转换成图片的实现代码的文章就介绍到这了


http://www.jsqmd.com/news/664820/

相关文章:

  • 南北阁 Nanbeige 4.1-3B 镜像部署:支持NVIDIA Triton推理服务器封装方案
  • ChatGLM3-6B-128K惊艳表现:跨章节小说情节连贯性生成测试
  • Step3-VL-10B模型C盘清理优化:智能存储管理工具开发
  • 百度网盘直链解析工具:告别龟速下载的终极解决方案
  • Ollama integration issues: context window ignored + API key confusion + tool support blocking
  • 【SITS2026机密白皮书】:为什么83%的企业在AI扫描中仍依赖人工复核?3类不可绕过的语义盲区正在吞噬DevSecOps效能
  • Python实现快速将pdf文件剪切成多个图片
  • Z-Image Turbo免配置环境实战:快速搭建个人绘画平台
  • Agent Skill开发:Qwen3-ForcedAligner-0.6B语音助手集成
  • OFA-VE从部署到应用:开发者用OFA-VE构建自动化内容合规检测工具链
  • AI编程助手增强:利用StructBERT实现代码注释与文档的语义检索
  • DAMO-YOLO实战教程:拖拽上传+实时统计,工业级视觉系统轻松上手
  • 用FLUENT验证ICEM网格质量:一个二维混合器流动传热仿真的完整案例复盘
  • 保姆级教程:在RK3588 Android 12.0上开启DEVMEM,让io命令读写寄存器不再报错
  • 保姆级教程:用Streamlit可视化UI,轻松将动漫头像变真人照片
  • 《为什么 10 倍增长比 2 倍更容易》读书笔记:反内卷的指数级增长破局法
  • Pixel Couplet Gen 惊艳作品集:算法驱动下的传统年俗像素艺术
  • 2026年3月市场口碑好的信息发布系统供应商怎么联系,信息发布一体机/会议预约电子门牌,信息发布系统企业口碑推荐 - 品牌推荐师
  • Jellyfin豆瓣插件:中文媒体库元数据缺失的终极解决方案
  • 促使深度学习发展的挑战(二十二)
  • Wan2.2-I2V-A14B在Qt桌面应用中的嵌入:打造本地化视频创作工具
  • DAMOYOLO-S案例分享:古建筑图像中斗拱/飞檐/彩画构件自动识别
  • 别再只用IsInitialized了!Halcon C++实战:手把手教你写一个健壮的HObject空值判断函数
  • 2026目前靠谱的邓州旧房客厅改造品牌口碑排行榜 - 品牌排行榜
  • LVGL蒙板遮罩避坑指南:为什么你的ObjectMask总是不显示文字?
  • 从零构建大语言模型特殊 Token 与 BPE 字节对编码 — 让分词器处理任何未知词(五)
  • 快速上手造相-Z-Image-Turbo亚洲美女LoRA:Web服务部署与图片生成指南
  • G-Helper完整指南:华硕笔记本的轻量级性能优化神器
  • SDXL 1.0实战:3步生成赛博朋克风格头像,效果惊艳堪比电影截图
  • Jmeter压测结果文件(.jtl)太大下载慢?试试这招在Linux服务器上直接生成HTML报告