前言
PDF分类:文本(可复制)、纯图片
一、文本类型的pdf
可通过以下方式解析其内容
import fitz
def preprocess(text):
text = text.replace('\n', ' ')
text = re.sub('\s+', ' ', text)
return text
def parse_pdf_text(path):
doc = fitz.open(path)
total_pages = doc.page_count
text_list = []
for i in range(total_pages):
page = doc.load_page(i)
text = page.get_text()
text = preprocess(text)
text_list.append(text)
doc.close()
return text_list
二、图片类型pdf
本示例仅展示将pdf中的图片提取出来,想识别其中的内容需要用到ocr
def parse_pdf_img(path):
doc = fitz.open(path)
for i in range(doc.page_count):
page = doc.load_page(i)
image_list = page.get_images(full=True) # 获取页面中的所有图片
for img_index, img in enumerate(image_list):
xref = img[0] # 获取图片的引用号
base_image = doc.extract_image(xref) # 提取图片
image_bytes = base_image["image"] # 获取图片的字节数据
image_ext = base_image["ext"] # 获取图片的扩展名
# 保存图片到文件
image_filename = f"page_{i + 1}_img_{img_index}.{image_ext}"
with open(image_filename, "wb") as image_file:
image_file.write(image_bytes)
print(f"Saved image: {image_filename}")
doc.close()
1756

被折叠的 条评论
为什么被折叠?



