在Python中将PDF文件转换为文本文件

3
我已经花了几天时间在互联网上研究如何从pdf文件中获取特定信息。最终,我使用Python从文本文件中提取了所有信息(通过转换成文本文件的方式,首先打开PDF文件,然后选择“文件”菜单,最后将其另存为文本文件并保存到相同目录下)。
问题是如何让Python完成这些任务。要实现这个目标,需要使用open("file path")打开PDF文件, 点击菜单中的"文件",然后将文件另存为文本文件并保存到相同目录下。
需要注意的是,我不需要pdfminer或pypdf库,因为我已经通过手动将其转换为txt格式来提取了相应信息。

有一个Web应用程序和一个模块,可以将mypdf.pdf pdf2txt.py进行转换。请查看一下。 - cwahls
是的,我知道这一点。但我想通过最终自动化这个过程来实现它,所以我需要通过Python命令来完成。正如我所说,我能够在没有Web应用程序的情况下执行此操作,只需进入PDF文件并将其保存为文本即可 - 这就是我想要告诉Python要做的事情。谢谢您的反馈,克莱顿! - Jenny_V
2个回答

1

您可以使用从http://www.foolabs.com/xpdf/download.html下载的pdftotext.exe,然后通过Python在PDF文件上执行它:

import os
import glob
import subprocess

#remember to put your pdftotxt.exe to the folder with your pdf files 
for filename in glob.glob(os.getcwd() + '\\*.pdf'):
    subprocess.call([os.getcwd() + '\\pdftotext', filename, filename[0:-4]+".txt"])

至少对我的一个项目起作用了。

谢谢pawelty,但它似乎没有做任何事情。'[: import os import glob import subprocessfor filename in glob.glob(os.getcwd() + 'C:\PDFs\ConfirmationPDF.pdf'): subprocess.call([os.getcwd() + 'C:\PDFs\pdftotext.exe', filename, filename[0:-4]+'txt']) '. PDF的名称是confirmationpdf.pdf,我将pdftotext.exe保存在同一位置。我做错了什么吗? - Jenny_V
首先使用 os.chdir('C:\PDFs\') 命令将工作目录更改为 C:\PDFs\。更改工作目录后,您无需更改我提供的代码中的任何内容。完成后,只需检查您的文件夹是否存在 txt 文件即可。如果成功,请告诉我。 - pawelty
是的,谢谢 :) 它起作用了,但是文本中包含UTF-8编码,并且它没有将这些数据传输到文本文件中,基本上只接受数字和英文字母。有什么解决办法吗? - Jenny_V
不确定,也许有人会知道...将PDF转换为文本往往很棘手,经常会导致问题... - pawelty
A#ebill#embeddedEmail#vadik18@gmail.com#Z1251026416 / 12/05/2016 13/04/2016 20147366
13/05/2016
1 :( ) " " 17 ,36 " 7566132 vadik18@gmail.com59.31 59.30 10.08 69.39, " " 17.00% " " "69.39
- Jenny_V
显示剩余2条评论

0
你可以使用"tabula" 的Python库。虽然它基本上使用Java,所以你必须安装Java SDK和JDK。 "pip install tabula" 然后将其导入到Python脚本中,你就可以将PDF转换为文本文件,如下所示: tabula.convert_into("path_or_name_of_pdf.pdf","output.txt",output_format="csv",pages='all') 你可以在谷歌上查看其他功能。这对我很有用。 干杯!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接