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文件转换成图片的实现代码的文章就介绍到这了