python读取pdf文档

打印 上一主题 下一主题

主题 1035|帖子 1035|积分 3105

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. import io
  2. import pdfplumber
  3. from opencc import OpenCC
  4. import fitz  # pymupdf
  5. import os
  6. file_path = '/document/pdf/xxx.pdf'
  7. output_dir = '/classification/pdf/images'
  8. #获取图片 demo
  9. def extract_images_from_pdf(pdf_path, output_dir):
  10.     # 确保输出目录存在
  11.     if not os.path.exists(output_dir):
  12.         os.makedirs(output_dir)
  13.     # 打开PDF文件
  14.     doc = fitz.open(pdf_path)
  15.     page_count = doc.page_count
  16.     # 遍历PDF的每一页
  17.     for page_num in range(page_count):
  18.         page = doc.load_page(page_num)
  19.         # 获取页面中的图片信息
  20.         images = page.get_images(full=True)
  21.         image_index = 0
  22.         for img_index, img in enumerate(images):
  23.             xref = img[0]
  24.             base_image = doc.extract_image(xref)
  25.             image_bytes = base_image["image"]
  26.             image_ext = base_image["ext"]
  27.             # 使用Pillow将图片保存到本地
  28.             from PIL import Image
  29.             image = Image.open(io.BytesIO(image_bytes))
  30.             image_path = os.path.join(output_dir, f"image_{page_num + 1}_{image_index + 1}.{image_ext}")
  31.             image.save(image_path)
  32.             image_index += 1
  33.     doc.close()
  34. # 使用示例
  35. extract_images_from_pdf(file_path, output_dir)
  36. cc = OpenCC('t2s')
  37. def read_pdf_with_pdfplumber(file_path):
  38.     images = []
  39.     with (pdfplumber.open(file_path) as pdf):
  40.         num_pages = len(pdf.pages)
  41.         print(f"Number of pages: {num_pages}")
  42.         text = pdf.pages[0].extract_text()
  43.         text = cc.convert(text)
  44.         print(text)
  45. # 示例用法
  46. read_pdf_with_pdfplumber(file_path)
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

三尺非寒

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表