我正在制作一个pdf文件.该pdf中有多个表格.
根据pdf中给出的表名,我想使用python从该表中获取数据.
我从事过html,xlm解析,但从未使用过pdf.
谁能告诉我如何使用python从pdf中获取表格?
我希望能够将PDF转换为CSV文件,并找到了几个有用的脚本,但是对Python来说,我有一个问题:
在哪里指定PDF的文件路径和要打印的CSV?
我正在使用Python 2.7.11和PDFMiner 20140328.
import sys
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):
fp = file(data, 'rb')
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
for page in PDFPage.get_pages(fp):
interpreter.process_page(page)
data = retstr.getvalue()
print data
if __name__ == '__main__':
pdfparser(sys.argv[1])
Run Code Online (Sandbox Code Playgroud) 我正在尝试将 pdf 书转换为 asciidoc 文档。我尝试了以下命令:
pandoc -s s.pdf -t asciidoc -o example28.txt
Run Code Online (Sandbox Code Playgroud)
我遇到了“未知读者”问题。
Run Code Online (Sandbox Code Playgroud)q@q-ABRA-A5-V12-1:~/Downloads$ pandoc -s s.pdf -t asciidoc -o example28.txt pandoc: Unknown reader: pdf Pandoc can convert to PDF, but not from PDF.
我该如何解决这个问题,或者是否有另一种方法可以将 pdf 转换为 asciidoc?
我从之前的 SO 问题中提取了一些 Python 代码,但这些代码是为 PDFMiner 的先前版本编写的(并且从那时起 PDFMiner 似乎发生了一些重大更改)。我已经做了一些更改来解决这些错误,但现在我收到以下错误:
C:\Users\xxxx\Documents\Programming\Python>pdfextractor.py
Traceback (most recent call last):
File "C:\Users\xxxx\Documents\Programming\Python\pdfextractor.py", line 71, in <module>
pdf_to_csv(sourcefile)
File "C:\Users\xxxx\Documents\Programming\Python\pdfextractor.py", line 55, in pdf_to_csv
for i, page in PDFPage.get_pages(doc):
File "C:\Program Files\Python27\lib\site-packages\pdfminer\pdfpage.py", line 119, in get_pages
parser = PDFParser(fp)
File "C:\Program Files\Python27\lib\site-packages\pdfminer\pdfparser.py", line 43, in __init__
PSStackParser.__init__(self, fp)
File "C:\Program Files\Python27\lib\site-packages\pdfminer\psparser.py", line 495, in __init__
PSBaseParser.__init__(self, fp)
File "C:\Program Files\Python27\lib\site-packages\pdfminer\psparser.py", line 166, in __init__
self.seek(0)
File "C:\Program Files\Python27\lib\site-packages\pdfminer\psparser.py", line 507, in seek
PSBaseParser.seek(self, pos)
File "C:\Program …
Run Code Online (Sandbox Code Playgroud) 我如何打开PDF文件并用Python阅读其中的一些内容(这种语言是首选,但Ruby,Perl或PHP也很好)(如果它被识别(不仅仅是图像))或报告说如果没有OCR?TIA
更新:感谢您的解决方案,我相信其中一些会很适合我.
@RichH,我有一个pdf文件,不知道它是基于图像还是基于文本.我正在寻找一种工具来帮助我找到它,以防它基于文本提取它的一些内容.
我正在尝试使用PDFMiner从PDF文件中提取文本(在Python中使用PDFMiner从PDF文件中提取文本时找到的代码?).除了path/to/pdf之外,我没有更改代码.令人惊讶的是,代码返回同一文档的多个副本.我得到了与其他pdf文件相同的结果.我是否需要传递其他论点或者我错过了什么?任何帮助都非常感谢.为了以防万一,我提供了代码:
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from cStringIO import StringIO
def convert_pdf_to_txt(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
fp = file(path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
maxpages = 0
caching = True
pagenos=set()
fstr = ''
for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
interpreter.process_page(page)
str = …
Run Code Online (Sandbox Code Playgroud)