在网上查找的时候,确实有很多相关的代码,最多的是利用
- 基于
fitz
库和正则搜索提取图片
但是,在使用中发现,有些函数都过时了,导致功能无法实现,最后结合网上文章,然后自己排查了一下错误,最终整合出来一段目前能用的 python 提取 pdf 文件的代码。
在这之前需要安装 pymupdf 库(fitz 是它的子库)
pip install pymupdf
import fitz
import re
import os
file_path =r'D:\Desktop\picture.pdf' # PDF 文件路径
dir_path = r'D:\Desktop' # 存放图片的文件夹
def pdf2image1(path, pic_path):
checkIM = r"image"
pdf = fitz.open(path)
lenXREF = pdf.xref_length()
count = 1
for i in range(1, lenXREF):
text = pdf.extract_image(i)
isImage = re.search(checkIM, str(text))
if not isImage:
continue
pix = fitz.Pixmap(pdf, i)
new_name = f"img_{count}.png"
pix.save(os.path.join(pic_path, new_name))