如何解决如何从PDF上的坐标中提取文本到Excel
Python的新手。我使用了以下代码:
from pdfminer.layout import LAParams,LTTextBox
from pdfminer.pdfpage import pdfpage
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import pdfpageInterpreter
from pdfminer.converter import pdfpageAggregator
fp = open('Card.pdf','rb')
rsrcmgr = PDFResourceManager()
laparams = LAParams()
device = pdfpageAggregator(rsrcmgr,laparams=laparams)
interpreter = pdfpageInterpreter(rsrcmgr,device)
pages = pdfpage.get_pages(fp)
for page in pages:
print('Processing next page...')
interpreter.process_page(page)
layout = device.get_result()
for lobj in layout:
if isinstance(lobj,LTTextBox):
x,y,text = lobj.bBox[0],lobj.bBox[3],lobj.get_text()
print('At %r is text: %s' % ((x,y),text))
输出如下:
在(245.76,685.4898)上是文本:STATEMENT
在(99.36,538.7497999999999)是文本:类型
在(210.0,538.7497999999999)是文本:详细信息
在(310.8,538.7497999999999)是文本:参考
我想将特定文本放入CSV的列中,例如(99.36,538.7497999999999)处的任何文本都将进入第1列,等等
我将如何处理?
解决方法
您可以使用pandas
来完成此任务:
import pandas as pd
df_results = pd.DataFrame()
for lobj in layout:
x,y,text = lobj.bbox[0],lobj.bbox[3],lobj.get_text()
collected_data = {'x': x,'y': y,'text': text}
data = pd.Series(collected_data)
df_results = df_results.append(data,ignore_index=True)
df_results.to_csv('coordinates_data.csv')
它将数据收集到数据框中,然后另存为csv。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。