乐于分享
好东西不私藏

PDF有目录却没书签?这个Python脚本1分钟搞定,还能精准定位到标题位置

PDF有目录却没书签?这个Python脚本1分钟搞定,还能精准定位到标题位置

💢 这些场景,你是否也经历过?
  • 下载了200页的学术报告,侧边栏空空如也,想回第一章只能疯狂滚轮
  • 扫描版教材有目录页,但PDF阅读器里没有书签树,翻书像大海捞针
  • 用阅读器的”添加书签”功能手动一个个加,加了20个就崩溃了
  • 好不容易加了书签,点击后跳到页面顶部,标题还得自己找
“有目录,却没有灵魂导航”——这是多少PDF的宿命
🎯

传统方法的痛,我们一次解决

❌ 手动添加书签
耗时30分钟+无层级结构只能定位到页
✅ 本脚本自动化
仅需1分钟自动层级树精确到标题行

三大核心亮点

📌保留完整编号

“1.1 人工智能基础”而非”人工智能基础”
🎯精准坐标定位

跳转到标题所在行,而非页面顶部
🗂️自动层级结构

1级/2级/3级书签树自动折叠
🔧页码偏移校正

封面、目录页导致的页码差一键修正
🛠️

三步上手,有手就会

1
安装依赖
打开终端,一行命令搞定:

pip install PyPDF2 pdfplumber
2
准备目录文件
新建一个txt文件,把PDF目录页的内容原样贴进去。格式像这样:

前 言 ........................... 11 人工智能知识领域 ............... 41.1 人工智能基础知识 ............. 51.2 工具与平台基本操作 ........... 72 人工智能能力构成 ............... 102.1 人工智能技术理解与应用能力 . 10附录 1 人工智能工具的使用 ...... 32
💡 小贴士:目录中的点线和页码会被自动识别,不需要手动删除。
3
运行脚本
把脚本、目录txt和PDF放在同一文件夹,执行:

python pdf_bookmarker.py -t toc.txt -p 原文件.pdf

程序会自动生成:原文件含目录.pdf

🔬

进阶玩法:页码偏移校正

很多PDF前面有封面、版权页、目录页,导致正文第1页在PDF里其实是第3页。这时需要偏移量校正

# 如果PDF前2页是封面和空白页,正文从第3页开始 python pdf_bookmarker.py -t toc.txt -p 原文件.pdf --offset 2 
✅ 公式记忆:PDF实际页码 = 目录页码 – 1 + offset
🧠

技术原理(极简版)

为什么能做到“精准定位到标题”

1
解析目录
自动提取”标题+页码+层级”,保留”1.1″这样的完整编号
2
页面内搜索
用pdfplumber在目标页面提取所有文字坐标,滑动窗口匹配标题位置
3
坐标转换
将页面顶部坐标转换为PDF标准坐标(左下角原点),书签跳转时直达标题所在行
📋

支持的目录格式

1.阿拉伯数字层级

1 / 1.1 / 1.1.1
附录章节

附录 1 / 附录 A
中文编号

第一章 / 第一篇
特殊章节

前言 / 引言 / 结论
🚀 现在就开始整理你的PDF书库
把那个因为没有书签而吃灰的PDF报告,变成一本真正的”电子书”
复制代码,3分钟出成果
💬

常见问题速查

Q:定位不准确怎么办?A:检查页码偏移量是否设置正确。如果PDF内文字是扫描图片(非可选中文字),则无法精确定位,程序会自动回退到页面顶部。
Q:目录编号被识别错了?A:程序已自动处理”2.4.”这类末尾带点的编号,确保层级正确。如有特殊情况,可在Python中直接调用并手动指定层级。
Q:能处理几百章的小说PDF吗?A:可以。程序会自动构建层级树,无论50章还是500章,一键生成完整书签导航。
🎁

获取完整程序

关注公众号,回复关键字
 pdf即可下载本程序完整代码
工具的核心价值,在于把重复劳动还给机器,把时间还给人。如果你觉得有用,欢迎转发给那个总在被PDF折磨的朋友。