首页 > 解决方案 > 如何使用pyPdf2获取PDF索引的数据框

问题描述

我想用 pyPdf2 获取 PDF 索引的数据火焰。

我在 Read all bookmarks from a PDF document and create a dictionary 中找到了以下代码, 其中包含书签的 PageNumber 和 Title

import PyPDF2

def show_tree(bookmark_list, indent=0):
    for item in bookmark_list:
        if isinstance(item, list):
            # recursive call with increased indentation
            show_tree(item, indent + 4)
        else:
            print(" " * indent + item.title)

reader = PyPDF2.PdfFileReader("[your filename]")
show_tree(reader.getOutlines())

我修改了这个函数如下

def show_bookmark(bookmark_list, indent=0):
    IndexDataFrame = pd.DataFrame(index=[], columns=['IndexLevel', 'Title'])
    
    for item in bookmark_list:
        if isinstance(item, list):
            # recursive call with increased indentation
            show_bookmark(item, indent + 1)
        else:
            record = pd.Series([indent, item.title], index=IndexDataFrame.columns)
            IndexDataFrame = IndexDataFrame.append(record, ignore_index=True)
            #print(indent, item.title)

    return IndexDataFrame

但是,IndexDataFrame不包括ALL OF DATA,只包括那些 indexLeve 为 0 的数据。

我只想将前一个函数的数据打印为一种数据框。

标签: pythonpandaspypdf2

解决方案


推荐阅读