在处理PDF文档时,将它们转换为图片格式可以方便在各种平台上的展示和分享。本文将通过一个简单的Python脚本,展示如何使用PyMuPDF库批量将文件夹内的PDF文件转换为图片。
安装PyMuPDF
首先,确保你的环境中已安装PyMuPDF库。PyMuPDF是一个功能强大的库,用于处理PDF文件和其他文档格式。如果未安装,请通过以下命令进行安装:
pip install PyMuPDF
import fitz
: 导入PyMuPDF库。尽管库的安装名称是PyMuPDF
,在代码中引用时使用的是fitz
。import os
: 导入os
模块,用于处理文件和目录路径。pdf_folder_path
和base_save_path
: 分别定义包含PDF文件的源文件夹路径和图片保存的目标文件夹路径。os.listdir(pdf_folder_path)
: 列出源文件夹中的所有文件和目录。fitz.open(pdf_path)
: 使用PyMuPDF打开一个PDF文件。page.get_pixmap(dpi=300)
: 将PDF页面渲染为一个图片对象,dpi=300
参数确保了较高的输出质量。pix.save(image_path)
: 将渲染后的图片对象保存为文件。
import fitz # PyMuPDF库
import os
# 指定包含PDF文件的文件夹路径
pdf_folder_path = r'你的PDF文件夹路径'
# 定义图片保存的基础路径
base_save_path = r'你的图片保存路径'
# 使用os库列出文件夹中所有以.pdf结尾的文件
pdf_files = [f for f in os.listdir(pdf_folder_path) if f.endswith('.pdf')]
# 遍历每个PDF文件
for pdf_file in pdf_files:
# 拼接完整的PDF文件路径
pdf_path = os.path.join(pdf_folder_path, pdf_file)
# 根据PDF文件名创建子文件夹,用于存放转换后的图片
save_path = os.path.join(base_save_path, pdf_file[:-4]) # 移除.pdf后缀
if not os.path.exists(save_path):
os.makedirs(save_path) # 如果子文件夹不存在,则创建
# 使用fitz打开PDF文件
doc = fitz.open(pdf_path)
# 遍历PDF中的每一页
for page_number in range(len(doc)):
# 加载当前页
page = doc.load_page(page_number)
# 将当前页转换为图片(pix对象),设置DPI为300以获得较高的图片质量
pix = page.get_pixmap(dpi=300)
# 定义当前页图片的保存路径和文件名
image_path = os.path.join(save_path, f'page_{page_number + 1}.png')
# 保存图片到指定路径
pix.save(image_path)
# 处理完当前PDF文件后关闭文档对象
doc.close()
print(f"{pdf_file} 转换完成。")
print("所有PDF文件转换完成。")