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

Is there any way to extract header and footer and title page of a PDF document?

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

我正在使用这个实用函数从 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.

Apache Tika 也进行元数据提取。您还可以提取名称、title/multiple-titles、日期、页数、修改日期等等。

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.