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

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)

相关文章:

  • 学习 `@PreDestroy`:Java EE/Jakarta EE 生命周期回调
  • web安全:跨站请求伪造 (CSRF)
  • Spark(2)linux和简单命令
  • Python 关于顶层对象
  • k8s Container runtime network not ready
  • 知识图谱-学习计划
  • 基于eBPF的全栈可观测性系统:重新定义云原生环境诊断范式
  • YOLOv12改进 | 注意力篇 | YOLOv12引入CBAM注意力机制
  • 今日行情明日机会——20250220
  • 调用click.getchar()时Windows PyCharm无法模拟键盘输入
  • 【狂热算法篇】探秘图论之Dijkstra 算法:穿越图的迷宫的最短路径力量(通俗易懂版)
  • mysql查看binlog日志
  • 【Python修仙编程】(一) Python3灵基初筑(2)
  • Upwork提案模板:如何写出吸引客户的提案
  • 记录几个U9的逻辑
  • 将RocketMQ集成到了Spring Boot项目中,实现站内信功能
  • python-leetcode 40.二叉树的层序遍历
  • 【Windows API】SetFilePointerEx函数用法介绍
  • 数仓搭建(hive):DM搭建(数据集市层)
  • MVCC(多版本并发控制)
  • 多人称华为手机忽现拍照模糊疑存缺陷,售后回应:主摄像头故障
  • 上海优化营商环境十大攻坚突破任务中,为何第一项是实施世行对标改革?
  • 上市不足一年,吉利汽车拟私有化极氪并合并:整合资源,杜绝重复投入
  • 超燃!走过莫斯科街头的“中国排面”
  • 公元1057年:千年龙虎榜到底有多厉害?
  • 上海明后天将迎强风大雨,陆地最大阵风7~9级