有没有办法提取PDF文档的页眉和页脚以及标题页?

时间:2018-01-17 16:58:00

标签: python pdf text-mining

我想知道是否有任何软件包可以检测并从PDF文档中提取页眉和页脚或标题页?我是使用python进行文本挖掘的新手,我想知道例如pdfminer.layout可以帮助找到pdfs中的任何文本块吗?

2 个答案:

答案 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.