在Python中读取PDF并转换为PDF中的文本



我使用这个代码将pdf转换为文本。

input1 = '//Home//Sai Krishna Dubagunta.pdf'
output = '//Home//Me.txt'
os.system(("pdftotext %s %s") %( input1, output))

我已经创建了主目录并将源文件粘贴到其中。

我得到的输出是
1

没有创建带有。txt的文件。问题在哪里?

有各种Python包可以使用Python从PDF中提取文本。你可以看到一个速度/质量基准。

作为pypdfPyPDF2的维护者,我有偏见,但我会推荐pypdf供人们开始。它是纯python和BSD 3-clause许可证。这对大多数人来说都是可行的。此外,pypdf可以对PDF文件做更多的事情(例如转换)。

如果您对c依赖关系感到满意,并且不想修改PDF,请尝试使用pypdfium2。Pypdfium2非常快,并且具有惊人的提取质量。

我以前推荐poppler pdftotext。不要用那个。它的质量比PDFium/PyPDF2差。

Tika和PyMuPDF的工作方式与PDFium类似,但它们也有非python依赖。由于商业许可,PyMuPDF可能不适合您。

我不会使用pdfminer/pdfminer。6 ./pdfplumber/pdftotext/borb/PyPDF2/PyPDF3/PyPDF4.

pypdf: Pure Python

安装:pip install pypdf(更多说明)

from pypdf import PdfReader
reader = PdfReader("example.pdf")
text = ""
for page in reader.pages:
    text += page.extract_text() + "n"

PDFium:高质量和非常快,但有c依赖

安装:pip install pypdfium2

import pypdfium2 as pdfium
text = ""
pdf = pdfium.PdfDocument(data)
for i in range(len(pdf)):
    page = pdf.get_page(i)
    textpage = page.get_textpage()
    text += textpage.get_text()
    text += "n"
    [g.close() for g in (textpage, page)]
pdf.close()

你的表达

("pdftotext %s %s") %( input1, output)

将转换成

pdftotext //Home//Sai Krishna Dubagunta.pdf //Home//Me.txt

表示传递给pdftotext的第一个参数是//Home//Sai,第二个参数是Krishna。这显然行不通。

将参数用引号括起来:

os.system("pdftotext '%s' '%s'" % (input1, output))

我认为pdftotext命令只有一个参数。尝试使用:

os.system(("pdftotext %s") % input1)

,看看会发生什么。

相关内容

  • 没有找到相关文章

最新更新