Python实现PDF自动添加书签目录:适用于阅读招股/募集说明书等长篇幅PDF

文摘   2024-05-27 20:00   广东  

本期代码预览

本期代码旨在优化PDF文件的阅读体验,特别针对缺乏书签标识的大篇幅PDF文件,如部分官网下载的招股说明书募集说明书。通过本期代码,可以轻松地为PDF文件添加书签目录,省去繁琐的翻页查找过程,使阅读更加高效便捷。

公众号后台回复26代码,即可得到本期代码。

代码预览

此外,我们还提供了针对本期代码的可执行程序,以exe格式封装,可以通过知识星球获取。

exe界面预览



代码使用

   准备

(1)确保电脑已成功安装Python;

(2)代码所需的库:os,re,pdfplumber,PyPDF2。

库的安装:cmd中分别执行pip install pdfplumberpip install PyPDF2

   使用

(1)确保PDF文件中有目录页,且有“目录”标题(如下图);
注:如果目录本身有误或难以识别,那么添加的书签可能存在问题。

(2)将代码中的PDF路径修改为自己的文件路径;

if __name__ == "__main__":
    # 路径和文件名处理
    pdf_path = r"你的PDF文件路径"
    output_path = gen_new_filename(pdf_path, "【添加书签】")
    # 提取并分类目录
    toc_list = categorize_toc(extract_toc(pdf_path))
    # 添加书签到PDF
    add_bookmarks_to_pdf(pdf_path, output_path, toc_list)
    print(f"已添加书签,PDF文件保存至:{output_path}")
(3)执行代码,生成带书签的PDF文件,保存在原文件所在目录(效果如下图)。

<<< 左右滑动见更多 >>>

代码说明

   一、导入的库

import os    # 文件和路径操作
import re    # 正则表达式模块,用于文本匹配
import pdfplumber    # 用于提取PDF文本和信息
from PyPDF2 import PdfReader, PdfWriter    # 用于处理PDF文件

   二、提取目录并分级

定义了两个函数:

(1)提取PDF中的目录:extract_toc函数通过扫描PDF文本以获取目录起始页和内容,然后提取目录中的各级标题和页码;

(2)对目录进行分级:categorize_toc函数根据目录标题的格式,将目录分为不同级别,以便后续添加书签。

   三、添加书签到PDF文件

利用 PyPDF2 库,定义了add_bookmarks函数,用于向PDF文件添加书签。该函数根据提取并分级后的目录信息,逐级地为每个目录项添加对应的书签,从而便于浏览和导航整个PDF文档。

   四、路径和文件名处理

利用 os 库,定义了gen_new_filename函数,根据原始文件的路径和名称生成一个新的文件名,同时添加了特定的前缀“【添加书签】”,方便识别和管理新生成的带书签的PDF文件,同时避免与原文件混淆。

关注我们

后台回复26代码,即可得到本期代码。

以exe格式封装的可执行程序,请通过知识星球获取。

   往期文章

往期代码分类整理:ABCoding发展总结 | Python基础教程:环境搭建

人物专访及经验分享:IBD Tools创始人:从四大到投行,开发出万人使用的效率工具金融校招攻略 | 文商科学码自救小组&来我青年合作总结

知识星球与知识库详细介绍:ABCoding | 知识星球-近期精华总结

职业知识库介绍与申请方法:ABCoding职业知识库 | 高质量面经库!覆盖多行业汇总15+求职方向子库



 感谢观看,本篇相关资源在关注后可领取 
 欢迎点赞与在看,感谢支持!

文商科学码自救小组
专注于结合编程与文商科知识,消灭工作中的Dirty Work,内容涵盖Python/RPA等。
 最新文章