1、创建文件夹(output_folder为创建文件夹的名称):
os.makedirs(output_folder, exist_ok=True)
2、将PDF转换为图像,以便后续方便对pdf上的文字提取和处理(这里需要从pdf2image库中导入convert_from_path函数):
from pdf2image import convert_from_path
images = convert_from_path(pdf_path)
3、enumerate
是Python中的一个内置函数,用于在迭代过程中同时获取元素的索引和值。它返回一个生成器对象,该对象产生包含索引和对应值的元组。(i就是对应的索引值,image对应图像):
for i, image in enumerate(images):
4、os.path.join函数用于将两个路径内容合并:
image_path = os.path.join(output_folder, f'{file_name}_page_{i + 1}.jpeg')
5、保存图像内容需要使用save函数:
image.save(image_path)
6、fitz介绍:fitz是一种用于操作PDF文件的Python库,很可能是 PyMuPDF(也称为 Fitz)库。PyMuPDF 是一个功能强大且常用的用于读取、编辑和提取信息的PDF处理库。该库提供了对PDF文档的许多操作,如打开、读取、写入、渲染等。(open用来打开pdf)
doc = fitz.open(pdf_path)
7、page_count是fitz库自带的方法用来获取pdf的页数
page_count = doc.page_count
8、load_page()
方法来加载指定页码的页面。load_page(page_number)
方法用于加载 PDF 文档中的指定页码的页面,并将页面分配给名为 page
的变量。
page = doc.load_page(page_number)
9、get_images()
方法用于获取页面中的图像列表。它返回一个包含图像信息的列表,每个图像信息是一个字典对象,包含图像数据以及其他相关的属性。
image_list = page.get_images()
10、os.base.basename方法用来获取pdf的文件名包括他的扩展,然后使用os.path.splitext()[0]方法获取pdf文件名不包含扩展名
pdf_filename = os.path.basename(pdf_file) # 获取 PDF 文件的文件名(包含扩展名)
pdf_name = os.path.splitext(pdf_filename)[0] # 获取 PDF 文件的纯文件名(不包含扩展名)