# pdf-bookmark **Repository Path**: bitpg/pdf-bookmark ## Basic Information - **Project Name**: pdf-bookmark - **Description**: 这是一个给pdf文件加书签的skill - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-13 - **Last Updated**: 2026-07-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PDF Bookmark 自动从 PDF 内容中提取标题层级,生成可点击跳转的书签。点击书签后,目标标题会显示在 PDF 窗口的第 2 行。 ## 功能 - 支持多层级标题(L1 ~ L4),自动识别 `第X章/讲`、`X. xxx`、`X.X xxx`、`X.X.X xxx` 等编号模式 - 支持 `加餐-xxx` 格式的特殊标题 - 通过字体大小区分真标题和正文中的编号条目 - 如果没有找到 L1 标题,自动用首页最大字体的文字创建根书签 - 书签目标位置自动上移,点击后标题显示在窗口第 2 行 ## 在 OpenCode 中安装 ### 克隆到 skills 目录 ```bash git clone https://github.com/xxx/pdf-bookmark.git ~/.config/opencode/skills/pdf-bookmark ``` 克隆后安装 Python 依赖: ```bash pip install pymupdf ``` ### 手动复制(备用) 将整个 `pdf-bookmark` 文件夹复制到 `C:\Users\<用户名>\.config\opencode\skills\` 下,确保 `SKILL.md` 在该文件夹中即可生效。 ## 在 OpenCode 中使用 安装完成后,在 OpenCode 对话中输入以下任一方式即可自动触发: - "帮我给这个 PDF 加上书签" - "给当前文件夹中的 PDF 文件加上书签" - "帮我生成 PDF 书签" OpenCode 会自动加载该 skill,检测 Python 环境、安装依赖并运行脚本。 ## 手动运行 也可以直接运行脚本: ```bash python generate_bookmarks.py ``` 脚本会自动扫描目录下所有 `.pdf` 文件,提取标题并设置书签。 ## 自定义偏移量 如果希望调整点击后标题在窗口中的位置,修改 `generate_bookmarks.py` 顶部的 `OFFSET_Y` 变量(默认 14 点)。 ## 标题检测规则 | 层级 | 编号模式 | 字体阈值 | 示例 | |------|---------|---------|------| | L1 | `第\d+[讲章]` / `\d+. ` / `加餐-` | ≥ 20pt | `第1讲:初识C语言`、`6. Vibe Coding的好与坏` | | L2 | `\d+. ` 开头 | ≥ 13.5pt | `1. C语言是什么?` | | L3 | `\d+.\d+ ` 开头且父编号匹配 L2 | ≥ 13pt | `2.1 历史` | | L4 | `\d+.\d+.\d+ ` 开头且父编号匹配 L3 | ≥ 12pt | `2.2.1 字符串和字符数组` |