2
我正在尋找從PDF中提取文本以進行數據挖掘任務。 我正在查看的PDF包含多個報告,每個報告在文檔目錄中都有其自己的第一級條目。此外,PDF開頭還有一個書面目錄,其中包含每個報告的頁碼(「從頁面到頁面」)。按第一個目錄級別批量分割PDF文件?
我正在尋找一種方式來之一:
斯普利特PDF到單獨的報表,以每個那些轉儲到一個文本文件。
直接將PDF的每個部分轉儲到.txt文件中。
到目前爲止,我已經能夠轉儲到整個文件到使用PDFminer(蟒蛇).txt的,如下:
# Not all imports are needed for this task
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
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 myparse(data):
fp = file(data, 'rb')
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, 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)
#fp.close()
#device.close()
str = retstr.getvalue()
#retstr.close()
return str
t1 = myparse("part2.pdf")
text_file = open("part2.txt", "w")
text_file.write(t1)
text_file.close()
而且,這個返回的表的整個結構內容:
# Open a PDF document.
fp = open('solar.pdf', 'rb')
parser = PDFParser(fp)
password = ""
document = PDFDocument(parser, password)
# Get the outlines of the document.
outlines = document.get_outlines()
for (level,title,dest,a,se) in outlines:
print (level, title, a)
任何想法如何從這裏開始?任何使用python,R或bash的工具對我來說都是最容易使用的,但只要它能夠根據文檔的第一個大綱級別進行批量分割,任何解決方案都將非常棒。
謝謝 馬蒂亞斯