[toc]
# 半自动化给PDF加书签-Python实现-可双击执行-上篇
![PDF直接加书签](https://s2.loli.net/2022/12/14/ZQipAXE7gWyhbu2.gif)
**下载链接**:https://github.com/Davy-Zhou/pdf_add_bookmark_semi/releases/download/v0.60/pdf_add_bookmark_semi.v0.60.zip
## 零、功能更新&Bug修复
`Bug或新功能,最好在Github里的issue里面提,要提新功能代码,欢迎提PR,其它平台不一定能及时看到,github 有邮件通知`:handshake:
- [x] **2022-11-22**
- [x] 针对页偏移无法识别时,**增加页偏移输入选项**,无需重开程序
![](https://s1.ax1x.com/2022/11/22/z1ovVg.png)
- [x] 针对**多个PDF要加书签**情况,完成一个PDF加书签后,无需重开,回车即可给下一个PDF加书签
![image-20221122005132356](https://s1.ax1x.com/2022/11/22/z1oxaQ.png)
- [x] **书签格式化库规则更新**
![image-20221122005253065](https://s1.ax1x.com/2022/11/22/z1oz5j.png)
- [x] **2022-8-17**
- [x] **增加多级书签无前置书签和书签层级不连续提示:bug:**
- [x] **提高容错性,非命令行下,显示报错提示**:bug:
- [ ] **dll不单独进打包exe,提升启动速度🐎**
- [x] **2022-8-15**
- [x] **新的打包方式,依赖有问题,改用旧的打包方式:bug:**
![Snipaste_2022-08-15_08-31-43](https://img2022.cnblogs.com/blog/1431291/202208/1431291-20220815083720793-482995602.png)
- [x] **2022-8-14**
- [x] **完成书签获取自动化:sparkles:**
- [x] **可自动识别部分PDF页偏移:sparkles:**
- [x] **改用新打包方式,exe体积更小,速度更快:sparkles:**
- [ ] **2022-8-1**
- [x] **加书签时,增加清空原有书签选项:sparkles:**
- [ ] **检测页码合法性,是否超出pdf页数**
- [ ] **相关容错改进**
- [ ] **2022-8-3**
- [ ] **bug 参数解析依赖**
![image-20220803170309034](https://img2022.cnblogs.com/blog/1431291/202208/1431291-20220815083720475-761995728.png)
- [ ]
- [ ] **2022-8-4**
- [ ] **所有判断做充分性测试**
```markdown
```
- [ ] **2022-8-9 着重新功能,性能优化,非严重容错问题暂时不修**
- [ ] **自动化获取书签**
```markdown
# PyAutoGui or pywin 模拟点击
# 读秀WEB JS逆向书签接口
# 书签获取软件逆向接口
```
- [ ] **加书签性能优化**
````markdown
# 尝试extend()方法
2022年8月9日02:15:59
1.
```python
outline.root.extend([
# Page counts are zero-based
OutlineItem('Section One', 0),
OutlineItem('Section Two', 2),
OutlineItem('Section Three', 8)
])
main_item = OutlineItem('Main', 0)
outline.root.append(main_item)
main_item.children.append(OutlineItem('A', 1))
# 还落是明天弄了,想睡觉了
2022年8月10日02:28:55
# 这个耗时不算太多,先弄书签获取 MuPDF已完成 \学习\mupdf_add_bookmark.py
```
# PyPDF2竟然更新了,试一下,额,WPS PDF差1的问题还是存在
# 使用Mupdf,及其它PDF操作Python库
# C pdf lib
````
![](https://img2022.cnblogs.com/blog/1431291/202208/1431291-20220815083719868-1780167968.png)
- [ ] **打包exe优化**
```markdown
# niutika
#
#
```
- [ ]
## 一、PDF加书签介绍
### 1.1 不那么漂亮的话
1. ==本工具只进行**书签部分格式化和加书签操作**,**书签获取需要配合其它工具**==
2. 最终书签效果因人而异,程序只能格式化最常见的层级,毕竟是半自动的
3. ==最好了解一定正则和列操作==,不了解的话可能要多手工重复一些操作
5. ==相比现有工具,没有太大优势,最初只是个人使用==
6. 反反复复改了一星期,差不多能用了,虽然代码依然很烂
### 1.2 PDF加书签难点
#### 1.2.1 书签获取
一般需要加书签的,大多是扫描版书籍,而市面上绝大多数扫描版书籍均出自**超星公司(读秀和全国图书参考联盟都是他家的)**,为了方便学术检索,超星有对目录进行提取,如下图。
![image-20220724190634286](https://img2022.cnblogs.com/blog/1431291/202207/1431291-20220730210451058-765396734.png)
![image-20220724190715119](https://img2022.cnblogs.com/blog/1431291/202207/1431291-20220730210450647-778903313.png)
![image-20220725153156223](https://img2022.cnblogs.com/blog/1431291/202207/1431291-20220730210450242-38871843.png)
额,然后有人分析出了超星书签的接口,做成了书签获取工具,如下图,**通过它能获取大多数书的书签**。
![image-20220727135111812](https://img2022.cnblogs.com/blog/1431291/202207/1431291-20220730210449906-239915737.png)
![image-20220724191423259](https://img2022.cnblogs.com/blog/1431291/202207/1431291-20220730210449522-1063451267.png)
但检索一本书的书签,需要知道书在超星的内部编号,上图书签获取工具填的就是那个编号
- **SSID( Super Star ID,超星英文简写)**
书签接口是超星开发的,其中检索每本书的书签不是通过ISBN或书名,而是其内部定义的编号**SSID**,这个SSID可以**油猴脚本**获取,推荐[文献互助小帮手](https://greasyfork.org/zh-CN/scripts/435569-%E6%96%87%E7%8C%AE%E4%BA%92%E5%8A%A9%E5%B0%8F%E5%B8%AE%E6%89%8B-%E4%BB%8E%E5%9B%BE%E4%B9%A6%E9%A6%86%E5%8F%82%E8%80%83%E5%92%A8%E8%AF%A2%E8%81%94%E7%9B%9F-ucdrs-%E6%88%96%E8%AF%BB%E7%A7%80-duxiu-%E8%8E%B7%E5%8F%96ssid-dxid-%E4%BB%8E%E4%B8%AD%E7%BE%8E%E7%99%BE%E4%B8%87-cadal-%E8%8E%B7%E5%8F%96ssno-%E6%8F%90%E4%BE%9Bucdrs-duxiu-cadal%E5%88%B0%E8%B1%86%E7%93%A3%E5%9B%BE%E4%B9%A6%E7%9A%84%E9%93%BE%E6%8E%A5)这个脚本,读秀和全国图书参考联盟都可以获取SSID,但在装油猴脚本前需要装[油猴插件](https://zhuanlan.zhihu.com/p/128453110)
![image-20220724194106998](https://img2022.cnblogs.com/blog/1431291/202207/1431291-20220730210449138-1158726713.png)
![image-20220724194617355](https://img2022.cnblogs.com/blog/1431291/202207/1431291-20220730210448725-1630071945.png)
装好的**油猴插件、油猴脚本**
![image-20220724195118825](https://img2022.cnblogs.com/blog/1431291/202207/1431291-20220730210448347-223706030.png)
**如果书签工具也没有那本书的书签,怎么办?**
- 这篇博客 [下载超星或读秀图书时,怎么搞定完整书签?](https://blog.csdn.net/youthlzu/article/details/24514703) 讲的可以,不重复了,主要是在~~各出版社官网,电商网站,豆瓣找~~,直接Google书签里面的内容,层级深一点的那个,实在没有就OCR书里面的目录部分再整理
**推荐阅读,上面的内容主要参考这三篇文章**
- 文献互助小帮手:https://greasyfork.org/zh-CN/scripts/435569-%E6%96%87%E7%8C%AE%E4%BA%92%E5%8A%A9%E5%B0%8F%E5%B8%AE%E6%89%8B-%E4%BB%8E%E5%9B%BE%E4%B9%A6%E9%A6%86%E5%8F%82%E8%80%83%E5%92%A8%E8%AF%A2%E8%81%94%E7%9B%9F-ucdrs-%E6%88%96%E8%AF%BB%E7%A7%80-duxiu-%E8%8E%B7%E5%8F%96ssid-dxid-%E4%BB%8E%E4%B8%AD%E7%BE%8E%E7%99%BE%E4%B8%87-cadal-%E8%8E%B7%E5%8F%96ssno-%E6%8F%90%E4%BE%9Bucdrs-duxiu-cadal%E5%88%B0%E8%B1%86%E7%93%A3%E5%9B%BE%E4%B9%A6%E7%9A%84%E9%93%BE%E6%8E%A5
- 淘宝书商为啥什么书都能找到:揭秘代找PDF背后的真相 :https://mp.weixin.qq.com/s/7SX-Oztgx2q76AN5YpntTA
- 下载超星或读秀图书时,怎么搞定完整书签? :https://blog.csdn.net/youthlzu/article/details/24514703
#### 1.2.2 书签格式化
==最初获取的书签结构化程度,很大程度决定了后期格式化用的时间。==根据经验,书签格式化有三个小点,**书签层级**、**每级书签样式**和**页码偏移**。
- **书签层级**
以《人工智能在信用债投资领域的应用 Python语言实践》(SSID: 14545152)这本书为例,见下图,这是从`书签获取
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
# 半自动化给PDF加书签-Python实现-可双击执行-上篇 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
基于Python半自动化给PDF加书签.zip (4个子文件)
code
pdf_add_bookmark_semi.py 13KB
requirements.txt 56B
Config
config.yaml 4KB
README.md 18KB
共 4 条
- 1
资源评论
奋斗奋斗再奋斗的ajie
- 粉丝: 1196
- 资源: 2908
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于ROS的eDVS转速测量系统.zip
- DU562音频处理芯片-音频音效解决方案
- (源码)基于Spring Boot和Apache Shiro的权限管理系统.zip
- JAVA的SpringBoot2前后端分离单商户B2C商城源码数据库 MySQL源码类型 WebForm
- (源码)基于C++插件开发框架的QQBot插件系统.zip
- (源码)基于Spring Boot框架的酒店管理系统.zip
- Vue.js框架入门与高级特性详解及应用实践.pdf
- 自定义精简版dubbo,运用spring自定义标签、netty、zookeeper、ImportBeanDefinition实现
- (源码)基于Arduino和NodeRed的智能村落监控系统.zip
- 【java毕业设计】SpringBoot+Vue毕业设计论文管理系统 源码+sql脚本+论文 完整版
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功