我想知道是否有任何软件包可以检测并从PDF文档中提取页眉和页脚或标题页?我是使用python进行文本挖掘的新手,我想知道例如pdfminer.layout可以帮助找到pdfs中的任何文本块吗?
答案 0 :(得分:1)
我使用此实用程序功能从PDF中提取所有文本元素:
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox, LTTextLine
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfinterp import PDFPageInterpreter, PDFResourceManager
from pdfminer.pdfpage import PDFPage, PDFTextExtractionNotAllowed
from pdfminer.pdfparser import PDFParser
def pdf2text(stream):
parser = PDFParser(stream)
document = PDFDocument(parser)
if not document.is_extractable:
raise PDFTextExtractionNotAllowed
resmgr = PDFResourceManager()
laparams = LAParams()
device = PDFPageAggregator(resmgr, laparams=laparams)
interpreter = PDFPageInterpreter(resmgr, device)
for page in PDFPage.create_pages(document):
interpreter.process_page(page)
for obj in device.get_result():
if isinstance(obj, (LTTextBox, LTTextLine)):
yield obj.get_text()
stream
参数是一个类似文件的对象(例如,为阅读而打开的文件或io.BytesIO
等的实例)。
此示例基本上遵循official example。
答案 1 :(得分:1)
Apache Tika也进行元数据提取。您还可以提取名称,标题/多标题,日期,页数,修改日期等。
import tika
from tika import parser
filename = "your file name here"
parsedPDF = parser.from_file(file_name)
print(parsedPDF['content'])
print(parsedPDF['metadata']) # its in a dictionary format.