使用Python从 PDF 文件中提取文本
你们所有人都必须熟悉什么是 PDF。事实上,它们是最重要和最广泛使用的数字媒体之一。 PDF 代表可移植文档格式。它使用.pdf扩展名。它用于可靠地呈现和交换文档,独立于软件、硬件或操作系统。
从 PDF 文件中提取文本
Python包 PyPDF 可以用来实现我们想要的(文本提取),尽管它可以做的比我们需要的更多。该软件包还可用于生成、解密和合并 PDF 文件。
注意:有关详细信息,请参阅在Python中处理 PDF 文件
安装
要安装此软件包,请在终端中键入以下命令。
pip install PyPDF2
例子:
输入PDF:
# importing required modules
import PyPDF2
# creating a pdf file object
pdfFileObj = open('example.pdf', 'rb')
# creating a pdf reader object
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
# printing number of pages in pdf file
print(pdfReader.numPages)
# creating a page object
pageObj = pdfReader.getPage(0)
# extracting text from page
print(pageObj.extractText())
# closing the pdf file object
pdfFileObj.close()
输出:
让我们试着分块理解上面的代码:
pdfFileObj = open('example.pdf', 'rb')
我们以二进制模式打开了example.pdf 。并将文件对象保存为pdfFileObj 。
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
在这里,我们创建一个 PyPDF2 模块的PdfFileReader类的对象,并传递 pdf 文件对象并获取一个 pdf 阅读器对象。
print(pdfReader.numPages)
numPages属性给出了 pdf 文件的页数。例如,在我们的例子中,它是 20(见输出的第一行)。
pageObj = pdfReader.getPage(0)
现在,我们创建一个 PyPDF2 模块的PageObject类的对象。 pdf阅读器对象具有函数getPage() ,它以页码(起始表单索引0)作为参数并返回页面对象。
print(pageObj.extractText())
Page 对象具有用于从 pdf 页面中提取文本的函数extractText() 。
pdfFileObj.close()
最后,我们关闭 pdf 文件对象。