首页 > 解决方案 > 使用 Python 将 PDF 文本提取到文本文件中 - 提取错误

问题描述

我想首先从 1 个 pdf 文件中提取所有文本并将其存储到一个文本文件中。

这是我的代码:

import PyPDF2
from pathlib import Path

with Path('C:/Users/Lui/Desktop/Test/file1.pdf').open(mode='rb') as pdf_file, open('Extracted/extractPDF.txt', 'w') as text_file:
    read_pdf = PyPDF2.PdfFileReader(pdf_file)
    number_of_pages = read_pdf.getNumPages()
    print(number_of_pages)
    for page_number in range(number_of_pages):   # use xrange in Py2
        page = read_pdf.getPage(page_number)
        page_content = page.extractText()
        print(page_content)
        text_file.write(page_content)

pdf 看起来像这样: 在此处输入图像描述

在此处输入图像描述

但是,与缺少的单词和间距相比,创建的文本文件看起来不同: 提取的文本

我究竟做错了什么?我的目标是循环浏览 1,000 个 PDF,所以我试图让 1 个示例首先工作。

标签: python

解决方案


尝试使用pdftotext

import pdftotext

# Load your PDF
    with open(filename, "rb") as f:
        pdf = pdftotext.PDF(f)

    # If it's password-protected
    #with open("secure.pdf", "rb") as f:
    #    pdf = pdftotext.PDF(f, "secret")

    # How many pages?
    #print(len(pdf))

    # Iterate over all the pages
    #for page in pdf:
    #    print(page)

    data = "\n\n".join(pdf)
    # Read all the text into one string
    print(data)

这个包效果更好,应该可以帮助你。


推荐阅读