当前位置: 首页 > 知识库问答 >
问题:

如何在Python 3.7中从pdf中提取文本[duplicate]

殳毅
2023-03-14

我正在尝试使用Python从PDF文件中提取文本。我的主要目标是创建一个程序,读取银行对账单并提取其文本,以更新excel文件,方便记录每月的支出。现在我只专注于从pdf文件中提取文本,但我不知道怎么做。

目前将PDF文件中的文本提取为字符串的最佳且最简单的方法是什么?今天最适合使用的图书馆是什么?我该怎么做?

我尝试过使用PyPDF2,但每次我尝试使用extractText()从任何页面提取文本时,它都会返回空字符串。我尝试过安装textract,但我遇到了错误,因为我想我需要更多的库。

import PyPDF2

pdfFileObj = open("January2019.pdf", 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)

pageObj = pdfReader.getPage(0)
print(pageObj.extractText())

这会在打印页面内容时打印空字符串

共有3个答案

马峻
2023-03-14

如果你正在寻找一个维护的、更大的项目,可以看看PyMuPDF。使用pip Install pymupdf安装它,并像这样使用它:

import fitz

def get_text(filepath: str) -> str:
    with fitz.open(filepath) as doc:
        text = ""
        for page in doc:
            text += page.getText().strip()
        return text
方弘
2023-03-14

使用tika对我有用!

from tika import parser

rawText = parser.from_file('January2019.pdf')

rawList = rawText['content'].splitlines()

这使得将银行对账单中的每一行单独提取到一个列表中变得非常容易。

阎宾实
2023-03-14

我尝试过很多方法,但都失败了,包括PyPDF2和Tika。我终于找到了适合我的模块,你也可以试试。

希望这对你有帮助。

import pdfplumber
pdf = pdfplumber.open('pdffile.pdf')
page = pdf.pages[0]
text = page.extract_text()
print(text)
pdf.close()
 类似资料:
  • 问题内容: 我正在尝试使用提取此 PDF文件中包含的文本。 我正在使用PyPDF2模块,并具有以下脚本: 运行代码时,得到以下输出,该输出与PDF文档中包含的输出不同: 如何提取PDF文档中的文本? 问题答案: 要从PDF提取文本,请使用以下代码

  • 问题内容: 如何 使用PHP 从PDF文档中提取文本? (我不能使用其他工具,我没有root用户访问权限) 我发现一些函数可用于纯文本,但是它们不能很好地处理Unicode字符: http://www.hashbangcode.com/blog/zend-lucene-and-pdf-documents-part-2-pdf- data-extraction-437.html 问题答案: 下载 c

  • 假设我的用户去了他们办公室的扫描仪。扫描仪能够生成扫描文档的PDF。这基本上就是我拥有的文件类型。 我想做的是从这个PDF中提取文本。这不是“第一代”pdf,因为文本没有嵌入到pdf中。文本嵌入在PDF中的图像中。 PDFBox的iText中是否有允许检索此数据的功能?如果可能的话,我正在尝试避免对图像进行OCR。我希望IText或PDFBox中有一些内置的东西可以做到这一点。 请注意,我不是在谈

  • 我使用Apache pdfbox来提取文本。我可以从pdf中提取文本,但我不知道如何知道这个词是否加粗???(代码建议很好!!!)下面是从pdf中提取纯文本的代码,效果很好。

  • 问题内容: 我想使用PDFMiner从PDF文件中提取所有文本框和文本框坐标。 其他许多Stack Overflow帖子都介绍了如何以有序方式提取所有文本,但是我该如何做获取文本和文本位置的中间步骤呢? 给定一个PDF文件,输出应类似于: 问题答案: 换行符在最终输出中转换为下划线。这是我发现的最小工作解决方案。

  • 问题内容: 我想知道是否可以仅使用Javascript将文本包含在PDF文件中?如果是,谁能告诉我如何? 我知道有一些服务器端的Java,C#等库,但我宁愿不使用服务器。谢谢 问题答案: 这是一个古老的问题,但是由于pdf.js多年来一直在发展,所以我想给出一个新的答案。也就是说,它可以在本地完成,而无需涉及任何服务器或外部服务。新的pdf.js具有一个函数:page.getTextContent