【问题标题】:Read PDF in Python and convert to text in PDF在 Python 中阅读 PDF 并转换为 PDF 中的文本
【发布时间】:2014-07-12 08:09:08
【问题描述】:

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

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

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

我得到的输出是

1

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

【问题讨论】:

标签: python pdftotext


【解决方案1】:

有多种 Python 包可以使用 Python 从 PDF 中提取文本。

pdftotext

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

安装

对于 Ubuntu:

sudo apt-get install build-essential libpoppler-cpp-dev pkg-config python-dev

最小的工作示例

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())

PDF 挖掘器

使用pip install pdfminer.six 安装它。一个最小的工作示例是here

【讨论】:

【解决方案2】:

你的表情

("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))

【讨论】:

  • 那行不通@Tim Pietzcker
  • “没用”并不是很有帮助。当您使用该命令时,结果究竟是什么?我不是 Unix 人,但路径中真的应该有双斜杠吗?如果在运行 Python 脚本的目录中键入 pdftotext '//Home//Sai Krishna Dubagunta.pdf' '//Home//Me.txt' 会发生什么?
  • 双斜线是在输入字符串中指定一个斜线。与在 C 中打印或指定 / 我们使用 // 相同。结果为 1。根据错误代码,这意味着它是无效函数。
  • @Krishna:你确定你没有混淆斜杠"/"和反斜杠"\"吗?
  • 困惑。一直有这个问题。
【解决方案3】:

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

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

看看会发生什么。希望这会有所帮助。

【讨论】:

  • 那么输出从哪里来?我必须给出一个输出路径对吗?一些存储文件的地方。和相同的输出。对不起。
  • 我在搜索有关 pdf 自动化(测试)的一些信息时遇到了您的问题。我的评论基于此:en.wikipedia.org/wiki/Pdftotext 提到它的地方:$ pdftotext file.pdf 这种用法会生成一个与输入文件同名的文本文件。不能使用通配符 (*),例如 $ pdftotext *pdf,用于转换多个文件,因为 pdftotext 只需要一个文件名。我可能误解了这个问题。
  • 我错过了一个必须根据另一个论坛用户安装的包。 link 但我无法尝试,因为我不知道如何安装该软件包。我会用 PyCharm 试试
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 2016-11-24
相关资源
最近更新 更多