使用Python阅读PDF并转换为PDF文本

Kri*_*hna 2 python pdftotext

我已使用此代码将pdf转换为文本。

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

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

我得到的输出是

1
Run Code Online (Sandbox Code Playgroud)

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

Tim*_*ker 5

你的表情

("pdftotext %s %s") %( input1, output)
Run Code Online (Sandbox Code Playgroud)

将翻译为

pdftotext //Home//Sai Krishna Dubagunta.pdf //Home//Me.txt
Run Code Online (Sandbox Code Playgroud)

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

将参数括在引号中:

os.system("pdftotext '%s' '%s'" % (input1, output))
Run Code Online (Sandbox Code Playgroud)

  • “没用”并没有多大帮助。当您使用该命令时,具体结果是什么?我不是 Unix 用户,但是路径中真的应该有双斜杠吗?如果您在运行 Python 脚本的目录中输入 `pdftotext '//Home//Sai Krishna Dubagunta.pdf' '//Home//Me.txt'` 会发生什么? (2认同)

Mar*_*oma 5

有多种Python软件包可使用Python从PDF提取文本。

PDF文本

pdftotext 包:似乎工作得很好,但它没有其他选择,例如提取边界框

安装

对于Ubuntu:

sudo apt-get install build-essential libpoppler-cpp-dev pkg-config python-dev
Run Code Online (Sandbox Code Playgroud)

最小的工作实例

import pdftotext

with open("lorem_ipsum.pdf", "rb") as f:
    pdf = pdftotext.PDF(f)

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

# Just read the second page
print(pdf.read(2))

# Or read all the text at once
print(pdf.read_all())
Run Code Online (Sandbox Code Playgroud)

PDF矿工

使用进行安装pip install pdfminer.six这里是一个最小的工作示例。