资讯动态

KOReader 智能目录生成:没目录的 PDF 三步补出可用章节导航

发布时间:2026/10/16 3:08:39 来源:尧图企业网站定制
KOReader 智能目录生成没目录的 PDF 三步补出可用章节导航【免费下载链接】koreaderAn ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices项目地址: https://gitcode.com/GitHub_Trending/ko/koreader扫描版 PDF、早期电子书经常没有内置目录翻页全靠硬翻。KOReader 智能目录生成能在打开文档时就把章节标题认出来拼成可点跳的多级导航页码错乱时还能自动修回。下面按先看到效果、再动手操作、最后拆原理的顺序走一遍。先说效果这份目录能为读者省掉什么打开一本没目录的扫描版 PDF最难受的不是读不进去而是回不去——想翻回上一章只能一页页往前退。目录补上之后这件事变成点一下顶栏菜单里 Table of contents 一开所有章节标题排在眼前点谁跳谁。对长文档它省下的是定位成本。目录里每条都挂着页码条目之间用缩进表示从属关系缩进深几级就代表子章节深几层。你翻到第 37 章某页底部状态栏会同时显示当前章节名和剩余页数进度条上的刻度也对应章节边界不用猜自己在哪。对滚动阅读的纯文本文档它顺带解决了章节标记乱飞的问题同一层的条目会按出现顺序编号让书签和跳转对齐不会点着点着跳到错位页。图里最上方那条 TOP MENU 就是进目录的入口下面实操会用到。实操目录怎么打开、怎么跳、哪几个参数值得调打开这一步很短阅读界面点顶部菜单或按设备的菜单快捷键选 Table of contents目录。条目按章节层级缩进排列点条目直接跳转右侧页码也能单独点。跳转与切换同样省目录里除了点到哪跳哪还能在相邻章节之间来回切。配合底部进度条的章节刻度长文档里回跳比翻页快得多。几个值得调的参数都在同一个目录设置菜单里改动会写进G_reader_settings下次自动生效toc_items_per_page每页显示几条默认 14范围 6–24目录条目多时调大就能少翻页。toc_items_font_size条目字号默认随条目数自适应也可手动改10–72。toc_items_show_chapter_length在条目后显示这一章跨多少页就是目录里(12)那串数字。toc_items_with_dots条目和页码之间那排点线dot leaders显不显示。 条目多、翻页乱时先把toc_items_per_page调大、顺手关掉点线比折腾别的参数更见效。幕后目录是怎么被算出来的核心逻辑集中在 readertoc.lua1400 多行。一份目录从无到有走完四步内容结构分析文档引擎先交出原始条目——PDF 书签、EPUB 导航、扫描文档里的标题每条带标题 页码。这一步在 document 层完成readertoc.lua 通过getToc()拿到。层次关系建立每条带一个depth字段几级标题就排到第几层多级目录就从扁平列表变成树。排序验证validateAndFixToc()负责这步readertoc.lua约 176 行起也就是自动生成目录后的质量把关。章节长度计算completeTocWithChapterLengths()用当前条目页码减去同层上一条页码得出这一章跨多少页填进chapter_length。快扫逻辑很短它只比较相邻页码一旦发现某条比上一条还小倒挂就判乱-- readertoc.lua · validateAndFixToc() 的快扫片段 local cur_page 0 for i 1, #toc do local page toc[i].page if page cur_page then -- 页码倒挂 乱序 has_bogus true break end cur_page page end -- has_bogus 为真时再逐条把倒挂项的页码 -- 回写成相邻正常项的页码使整表恢复递增快扫发现has_bogus后进入修复循环。它不盲目全改而是对每个倒挂项往前、往后各数一遍改前几条代价小就把那几回写成前一个正常项的页码否则回写成后一个正常项的页码谁改动少选谁。非主线流程比如附录的条目会被优先挪主线页码尽量不动。修完把原值存进orig_page仅用于展示整表恢复递增。谁用得上学术文献里摘要、引言、方法、结果这些章节名会被认出来多级小标题也能嵌套查某段结论不用从头翻。技术手册或 API 文档章节多、子条目多目录让跳到某个函数从翻页变成点击。长篇小说没有正式目录时分节标题和章名会被提成简洁的章节列表按章回跳阅读不断线。进阶与避坑替代目录HTML 标题文档没有规范目录时可开启基于标题的替代目录从 HTML 的 H1–H6 标题重建章节树对应开关alternative_toc。自定义目录手动编辑readerhandmade.lua 提供 Custom table of contents能自建、改标题、调顺序、删条目原目录不受影响。保存与同步自定义目录会存进文档设置handmade_toc随文档持久化、跨设备跟随相当于把这份导航带走。避坑识别效果很看输入质量——OCR 要清晰、真标题用真标题层级尽量规范并跟进 KOReader 更新拿到识别与修复的改进。目录不是越花哨越好——条目多、翻页乱时先把toc_items_per_page调大、关掉点线比调识别参数实在。想深入的话直接读readertoc.lua的fillToc()入口四步流程一眼看穿。【免费下载链接】koreaderAn ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices项目地址: https://gitcode.com/GitHub_Trending/ko/koreader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑