有没有办法提取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.
我想知道是否有任何软件包可以检测和提取 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.