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

发布于:2024-05-06 ⋅ 阅读:(30) ⋅ 点赞:(0)

安装PyMuPDF库(如果还没有安装的话):

pip install pymupdf

使用以下Python脚本来提取指定页面的文本:

import fitz  # 导入PyMuPDF库

def extract_text_from_specific_page(file_path, page_number):
    # 打开PDF文件
    doc = fitz.open(file_path)
    
    # 检查页面号是否有效
    if page_number < 1 or page_number > len(doc):
        return "页面号超出文档范围"
    
    # 提取指定页面的文本(页面索引从0开始,因此减1)
    page = doc[page_number - 1]
    text = page.get_text()
    
    # 关闭文档
    doc.close()
    
    return text

# 设置文件路径和要提取的页面号
pdf_path = './example.pdf'  # PDF文件路径
page_number = 3  # 假设我们要提取第3页的内容(从1开始)

# 调用函数并打印结果
extracted_text = extract_text_from_specific_page(pdf_path, page_number)
print(extracted_text)

使用以下Python脚本来提取PDF文件所有页面文本,并存储在txt文件中:

import fitz  # 导入PyMuPDF库

def extract_text_from_pdf(file_path, output_path):
    """
    从指定的PDF文件中提取所有页面的文本,并将其存储在TXT文件中。

    参数:
    file_path: str, PDF文件的路径。
    output_path: str, 输出的TXT文件的路径。
    """
    # 打开PDF文件
    doc = fitz.open(file_path)
    
    # 初始化一个空字符串来收集文本
    full_text = ""
    
    # 遍历每一页
    for page in doc:
        # 提取当前页面的文本并追加到full_text字符串
        full_text += page.get_text()
    
    # 关闭文档
    doc.close()
    
    # 将所有文本写入TXT文件
    with open(output_path, "w", encoding="utf-8") as file:
        file.write(full_text)

    return f"文本已保存到 {output_path}"

# 设置文件路径和输出路径
pdf_path = 'example.pdf'  # PDF文件路径
txt_path = 'output.txt'  # 输出TXT文件的路径

# 调用函数并打印结果
result = extract_text_from_pdf(pdf_path, txt_path)
print(result)