python 打开pdf文件_Python 读 PDF文件,现只支持到TXT

有一特别的需要从一批pdf文件中获取对应的数据信息,再用R做出可视化的数据报表.

Python 版本2.7,PDFminer是最新版,平台windows

>>> pdfminer.__version__

'20131113'

在windows 上解压pdfminer到python的目录下,为其在pdfminer自己的目录下新建个cmap文件夹

mkdir pdfminer\cmap

执行相应的脚本:

..\python tools\conv_cmap.py -c B5=cp950 -c UniCNS-UTF8=utf-8 pdfminer\cmap Adobe-CNS1 cmaprsrc\cid2code_Adobe_CNS1.txt

..\python tools\conv_cmap.py -c GBK-EUC=cp936 -c UniGB-UTF8=utf-8 pdfminer\cmap Adobe-GB1 cmaprsrc\cid2code_Adobe_GB1.txt

..\python tools\conv_cmap.py -c RKSJ=cp932 -c EUC=euc-jp -c UniJIS-UTF8=utf-8 pdfminer\cmap Adobe-Japan1 cmaprsrc\cid2code_Adobe_Japan1.txt

..\python tools\conv_cmap.py -c KSC-EUC=euc-kr -c KSC-Johab=johab -c KSCms-UHC=cp949 -c UniKS-UTF8=utf-8 pdfminer\cmap Adobe-Korea1 cmaprsrc\cid2code_Adobe_Korea1.txt

..\python setup.py install

linux 下相当简便些,执行package就成了.

新建一.py文件内容如下:

#!/usr/bin/python

# -*- coding: utf-8 -*-

import sys

import codecs

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter

from pdfminer.pdfpage import PDFPage

from pdfminer.converter import XMLConverter, HTMLConverter, TextConverter

from pdfminer.layout import LAParams

from cStringIO import StringIO

def pdfparser(data):

outfile = data+'.txt'

fp = file(data, 'rb')

outfp = file(outfile,'w')

rsrcmgr = PDFResourceManager()

retstr = StringIO()

codec = "utf-8"

laparams = LAParams()

device = TextConverter(rsrcmgr, outfp, codec=codec, laparams=laparams)

# Create a PDF interpreter object.

interpreter = PDFPageInterpreter(rsrcmgr, device)

# Process each page contained in the document.

for page in PDFPage.get_pages(fp):

interpreter.process_page(page)

data = retstr.getvalue()

print data

device.close()

outfp.close()

if __name__ == '__main__':

pdfparser("c:/r/22.pdf")

检查相应的目录,目标文件以生成,支持中文,再根据需要筛选相应的关键字,获取数据信息.

备注:网上有挺多资料中加载了process_pdf类,在现有的版本资料中会报错,笔者纠结了挺久最后试出了这段代码

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/602532/viewspace-1077990/,如需转载,请注明出处,否则将追究法律责任。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值