使用PyMuPDF程序处理PDF

MuPDF 是一个 C/C++ 编写的跨平台 PDF 库,它提供强大的功能来处理 PDF 文件,包括提取文本、图像和元数据,以及支持PDF页面的添加、删除和旋转。PyMuPDF 是 MuPDF 的 Python 版本,允许 Python 程序使用 MuPDF 的强大功能。

首先,确保已经安装了PyMuPDF库。可以使用pip来安装:

pip install pymupdf

以下是使用 PyMuPDF 的简单示例:

打开和读取 PDF 文件

import fitz  # 引入 PyMuPDF 库

# 打开 PDF 文件
doc = fitz.open("test.pdf")

# 输出文件信息
print(f"文件名称: {doc.name}")
print(f"页面数: {len(doc)}")

# 读取第一页
page = doc[0]  # 获取第一页
text = page.get_text()
print(f"第一页文本:\n{text}")

提取PDF文本和图像

import fitz

doc = fitz.open("test.pdf")
page = doc[0]

# 提取文本
text = page.get_text()
print(text)

# 提取图片
for img in page.get_images():
    imgf= img[0]
    pix = fitz.Pixmap(doc, imgf)
    pix.save(f"image_{imgf}.png")

给文档添加注释

import fitz

doc = fitz.open("test.pdf")
page = doc[0]

# 添加注释
annot = page.add_rect_annot(fitz.Rect(100, 100, 200, 200))
annot.set_text("这是一个注释")

# 保存修改后的 PDF 文件
doc.save("out.pdf")

转换 PDF 为图像

import fitz

doc = fitz.open("test.pdf")
page = doc[0]

# 将页面转换为 PNG 图像
pix = page.get_pixmap()
pix.save("image.png")

进行 OCR识别

import fitz  # PyMuPDF 库
import pytesseract  # 这里需要安装Tesseract OCR 库

# 确保已安装 Tesseract OCR 引擎并设置好环境变量

# 打开 PDF 文件
doc = fitz.open("my.pdf")

# 处理每一页
for page_num in range(len(doc)):
    page = doc[page_num]

    # 获取图像
    pix = page.get_pixmap()

    # 保存图像
    image_path = f"page_{page_num + 1}.png"
    pix.save(image_path)

    # 使用 Tesseract 进行 OCR
    text = pytesseract.image_to_string(image_path, lang='eng')  # 设置语言

    # 打印 OCR 结果
    print(f"页面 {page_num + 1} 的文本:\n{text}")

    # 可选:保存 OCR 结果到文本文件
    with open(f"output_{page_num + 1}.txt", "w", encoding="utf-8") as f:
        f.write(text)

关于更多使用PyMuPDF方法可以参考官方手册 PyMuPDF 1.24.4 documentation

或者mupdf的官方文档 MuPDF documentation

文章地址:使用PyMuPDF程序处理PDF – AI小站

相关推荐

  1. 使用PyMuPDF(fitz)提取PDF文件文本内容

    2024-06-17 23:34:02       37 阅读
  2. PyMuPDF专栏 」PyMuPDFPDF文件添加注释

    2024-06-17 23:34:02       53 阅读
  3. PDF解析--PyMuPDF (python 文档解析提取)

    2024-06-17 23:34:02       40 阅读
  4. pymupdf提取pdf表格及表格数据合并

    2024-06-17 23:34:02       30 阅读
  5. pdfplumber vs PyMuPDF:PDF文本、图像和表格识别的比较

    2024-06-17 23:34:02       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-17 23:34:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-17 23:34:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-17 23:34:02       87 阅读
  4. Python语言-面向对象

    2024-06-17 23:34:02       96 阅读

热门阅读

  1. 内网穿透的原理:实现远程访问的技术揭秘

    2024-06-17 23:34:02       30 阅读
  2. 佐助题库1228答案

    2024-06-17 23:34:02       30 阅读
  3. Spring Boot 面试热点(二)

    2024-06-17 23:34:02       34 阅读
  4. SQLite 日期 & 时间

    2024-06-17 23:34:02       28 阅读
  5. Linux安装docker

    2024-06-17 23:34:02       28 阅读
  6. xss-lab靶场的level15-level20

    2024-06-17 23:34:02       25 阅读
  7. 知识库的创建(1) - KnowledgeFile文件加载和分割

    2024-06-17 23:34:02       26 阅读
  8. Flink集群架构

    2024-06-17 23:34:02       20 阅读
  9. PCA 在图像分析上的应用

    2024-06-17 23:34:02       28 阅读
  10. 第二章 - 第1节- 逻辑运算 -课后习题

    2024-06-17 23:34:02       32 阅读
  11. 用最简单的方式理解函数重载

    2024-06-17 23:34:02       31 阅读