社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
PDF(Portable Document Format)便携式文档格式可以让用户在不同的系统上用同样的方式查看图片和文本文档。无论这些文件是在哪种系统上制作的。PDF无处不在,尤其在处理商务报表和表单的时候。
不过需要注意的是,目前很多PDF解析库都是用Python 2.x版本建立的,还没有迁移到Python3.x版本。但是,因为PDF比较简单,而且是开源的文档格式,所以一些给力的Python库可以读取PDF文件,而且支持Python 3.x版本。
PDFMIner3K就是一个非常好用的库。它非常灵活,可以通过命令行使用,也可以整合到代码中。它还可以处理不同的语言编码,而且对网络文件的处理也非常方便。
首先可以使用pip进行库的安装。执行操作和结果如下图所示:
下面我们将用程序示例,实现把任意PDF读取为字符串,然后用StringIO转换成文件对象:
from urllib.request import urlopen
from pdfminer.pdfinterp import PDFResourceManager,process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from io import StringIO
from io import open
def readPDF(pdfFile):
rsrcmgr=PDFResourceManager()
retstr=StringIO()
laparams=LAParams()
device=TextConverter(rsrcmgr,retstr,laparams=laparams)
process_pdf(rsrcmgr,device,pdfFile)
device.close()
content=retstr.getvalue()
retstr.close()
return content
pdfFile=urlopen("http://pythonscraping.com/pages/warandpeace/chapter1.pdf")
outputString=readPDF(pdfFile)
print(outputString)
pdfFile.close()
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!