当前位置: 首页 > article >正文

python读取pdf文档

import io
import pdfplumber
from opencc import OpenCC
import fitz  # pymupdf
import os

file_path = '/document/pdf/xxx.pdf'
output_dir = '/classification/pdf/images'
#获取图片 demo
def extract_images_from_pdf(pdf_path, output_dir):
    # 确保输出目录存在
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    # 打开PDF文件
    doc = fitz.open(pdf_path)
    page_count = doc.page_count
    # 遍历PDF的每一页
    for page_num in range(page_count):
        page = doc.load_page(page_num)
        # 获取页面中的图片信息
        images = page.get_images(full=True)
        image_index = 0
        for img_index, img in enumerate(images):
            xref = img[0]
            base_image = doc.extract_image(xref)
            image_bytes = base_image["image"]
            image_ext = base_image["ext"]
            # 使用Pillow将图片保存到本地
            from PIL import Image
            image = Image.open(io.BytesIO(image_bytes))
            image_path = os.path.join(output_dir, f"image_{page_num + 1}_{image_index + 1}.{image_ext}")
            image.save(image_path)
            image_index += 1
    doc.close()


# 使用示例
extract_images_from_pdf(file_path, output_dir)


cc = OpenCC('t2s')
def read_pdf_with_pdfplumber(file_path):
    images = []
    with (pdfplumber.open(file_path) as pdf):
        num_pages = len(pdf.pages)
        print(f"Number of pages: {num_pages}")
        text = pdf.pages[0].extract_text()
        text = cc.convert(text)
        print(text)
# 示例用法
read_pdf_with_pdfplumber(file_path)

http://www.kler.cn/a/558048.html

相关文章:

  • kotlin的Int类型调用toString()会导致空指针吗
  • 【Gin-Web】Bluebell社区项目梳理2:JWT-Token认证
  • 值和引用类型在变量赋值时的区别是什么?(C#)
  • SSI用量子计算来玩AI
  • 计算机考研之数据结构:P 问题和 NP 问题
  • ok113i——交叉编译音视频动态库
  • 【AI时代】可视化训练模型工具LLaMA-Factory安装与使用
  • 【Python爬虫(50)】从0到1:打造分布式爬虫项目全攻略
  • 2025最新在GitHub上搭建个人图床,保姆级图文教程,实现图片高效管理
  • mysql之InnoDB 统计信息收集
  • 【Web前端开发精品课 HTML CSS JavaScript基础教程】第二十五章课后题答案
  • MySQL数据库——表的约束
  • 基于数据可视化+SpringBoot+安卓端的数字化施工项目计划与管理平台设计和实现
  • Infuse Pro for Mac v8.1 全能视频播放器 支持M、Intel芯片
  • Lua 面向对象
  • Vue3 前端路由配置 + .NET8 后端静态文件服务优化策略
  • 力扣——杨辉三角
  • 基于数据可视化+SpringBoot+安卓端的数字化OA公司管理平台设计和实现
  • 具有整合各亚专科医学领域知识能力的AI智能体开发纲要(2025版)
  • 模拟实现Java中的计时器