PdgCntEditor 这个名字听起来像是某个冷门小工具,但在电子书整理和文档加工这个小圈子里,它解决的是一个非常具体、非常烦人的问题:给 PDF、DjVu、PDG 这三类文档补目录、改书签。很多人手里攒了一堆扫描版古籍、老杂志、技术手册,正文扫得挺清楚,偏偏目录是死的——要么干脆没有书签,要么页码对不上,要么从别处复制来的目录格式不兼容。用通用 PDF 编辑器干这活,不是功能不够就是流程太绕,而 PdgCntEditor 把这件事拆成了「文本模式」和「树形模式」两条路,让你能按自己的习惯把目录一条条敲进去、粘进去、或者从现成文件里导进去。它不负责扫描、不负责 OCR、不负责排版,它只盯着「目录」这一件事,把这件事做透。

它到底解决什么问题:目录编辑的最后一公里

先把这个工具的位置摆清楚。你手头可能已经有一份扫描好的 PDF,页面顺序没问题,但阅读器左侧的书签栏空空如也。你也可能有一份 DjVu 文档,目录信息藏在文件结构里,普通工具根本碰不到。更麻烦的是 PDG 格式——那是超星系阅读器用的页面封装,目录往往存在 bookcontents.dat 或 catalog.dat 这类文件里,还可能是编码过的,直接打开就是乱码。PdgCntEditor 的价值就在于,它把这三类格式的目录层单独拎出来,给你一个可编辑的界面。PDF 方面它明确不支持加密文档,这一点要提前确认,加密的 PDF 得先解密再处理。DjVu 和 PDG 则是它的特色战场,尤其是 PDG 目录的编解码,能直接读写压缩包里的目录文件并保存回去,省掉了「解包—改文件—重新打包」这套手工流程。

另一个容易被忽略的问题是目录来源。很多人不是不想做目录,而是不想从零敲几百条。PdgCntEditor 支持 FreePic2Pdf_bkmk.txt 这种纯文本目录格式,意味着你可以先在别处整理好「标题—页码」对照表,再一次性导入。它还提供了从 DjVuToy、FreePic2Pdf 启动的入口,说明它在整个电子书加工链条里是一个可被调用的环节,而不是孤岛。如果你平时用 UnicornViewer 看 PDG 书,编辑完目录后 UV 能自动刷新,这个联动省掉了反复关闭重开的动作。说白了,它解决的是「目录已经知道该写什么,但缺一个趁手工具把它写进去」的最后一公里问题。

适合什么基础:会整理文件就能上手,但正则那部分要有点底子

这门课或者说这个工具,对编程基础的要求其实不高。你不需要会写代码,不需要懂 PDF 内部结构,甚至不需要理解什么是书签树。只要你能分清「标题」和「页码」,能把一份目录按行整理成文本,就能用文本模式干活。文本模式的好处是所见即所得,一行一个条目,缩进或者标记符号决定层级,改起来跟改记事本没区别。树形模式则更适合已经有一定结构意识的用户,拖拽、展开、折叠,层级关系一目了然,适合目录层级比较深的技术手册或者多级章节的教材。

但有一个地方会拉开差距:文本模式支持正则表达式,而且分 VBScript 和 JavaScript 两种语法。如果你从来没碰过正则,这一块可以先跳过,用查找替换的普通功能也能完成大部分清理工作。但如果你手里有几百条格式混乱的目录文本,比如页码前面有乱七八糟的符号、标题里混着多余空格、章节编号格式不统一,那正则就是效率分水岭。会一点正则的人,几分钟能把整份目录洗得干干净净;不会的人,只能一条条手改。所以我的判断是:零基础可以学,但想把这工具用出速度,最好补一点正则的基本概念,哪怕只会用「查找替换」加简单的通配符,体验也会完全不同。另外,繁简转换这个功能对整理港台版本书目的人很实用,不用再绕到别的工具里转一圈。

建议先看哪几块:从格式支持入手,再啃 PDG 和联动

如果按学习顺序排,我建议先把「支持哪些格式、不支持哪些格式」这条边界摸清楚。PDF 不支持加密,这是硬限制,碰到加密文件别浪费时间,先去解密。DjVu 和 PDG 的目录文件位置和命名规则要心里有数,尤其是 PDG 的 bookcontents.dat 和 catalog.dat,知道它们藏在哪、长什么样,后面操作才不会慌。第二步是熟悉两种编辑模式的切换逻辑:什么时候用文本模式批量粘贴,什么时候用树形模式调整层级。很多人一上来就扎进树形模式,结果发现从外部粘贴进来的目录层级全乱,又得退回文本模式重排,来回折腾。先想清楚目录来源是「已有文本」还是「边看边敲」,再决定进哪个模式,能省不少时间。

第三块重点看 PDG 目录的编解码和压缩包内直接编辑。这是 PdgCntEditor 区别于普通 PDF 书签编辑器的核心能力,也是资料包里最值得反复试的部分。建议拿一个小体积的 PDG 压缩包做实验,改一条目录、保存、再用阅读器打开验证,走通一遍完整闭环。第四块是联动与外部调用:与 UnicornViewer 的自动刷新、从 DjVuToy 和 FreePic2Pdf 启动、以及 FreePic2Pdf_bkmk.txt 格式的导入导出。这些功能单独看都不复杂,但串起来就是一条工作流。最后再回头看辅助功能——窗口置顶、半透明、繁简转换、正则查找替换。这些不是核心,但决定了你长时间编辑时舒不舒服。置顶和半透明在对照原文校对页码时特别有用,别等到眼睛看花了才想起来开。

学完能独立做什么:从「有书没目录」到「目录可交付」

把上面几块走通之后,你应该能独立完成这样一件事:拿到一份没有书签的 PDF 或者 DjVu,或者一份目录乱掉的 PDG 文档,先判断格式和限制,再决定目录来源——是从零整理,还是从现有文本导入,还是从别的工具导出后转换。然后选择合适的编辑模式,把目录条目写进去,调整层级和页码对应关系,处理掉格式杂质,最后保存并在阅读器里验证。这个流程听起来简单,但真正做过的人知道,坑往往在细节里:页码偏移一位、层级缩进错一格、繁简混用导致查找不到、正则写错把标题吃掉了。能独立把这些坑填平,才算真正掌握。

更进一步,你可以把这套能力用在批量整理上。比如手里有几十本同一系列的扫描书,目录结构类似,就可以先做好一份模板目录文本,再逐本微调页码,而不是每本都从零开始。FreePic2Pdf_bkmk.txt 这类纯文本格式的好处就是可复用、可版本管理,你甚至可以用外部脚本生成目录文本再导入。PdgCntEditor 在这里扮演的是「最终写入器」的角色,它不替代你的整理逻辑,但它是把整理结果落地的可靠出口。学完之后的判断标准很直接:你能不能在不求助别人的情况下,把一本没有目录的书变成一本目录完整、层级清晰、页码准确的书。能做到,这个工具就算没白学。

资料怎么配合练习:别只看,拿真书开刀

这类工具型内容,光看操作说明意义不大,必须拿真实文件练。建议准备三份素材:一份无书签的普通 PDF、一份 DjVu 文档、一份 PDG 压缩包。PDF 用来练文本模式和树形模式的基本编辑,DjVu 用来熟悉另一种格式的目录结构,PDG 则是压轴,用来验证编解码和压缩包内直接保存。每份素材都先备份,改坏了能还原。练习顺序上,先做「导入现成目录文本」这种省力活,再做「手动逐条添加」这种体力活,最后做「正则批量清洗」这种技术活。每完成一步就在阅读器里检查一遍,不要攒到最后一起验,否则出了问题很难定位是哪一步引入的。

资料包里的内容,我建议拆成三块用:第一块是格式说明和限制条件,用来建立边界意识,避免在加密 PDF 或者不支持的格式上浪费时间;第二块是编辑模式和辅助功能的操作要点,用来形成肌肉记忆,尤其是查找替换和正则的写法,最好自己准备几组测试文本反复练;第三块是联动和外部调用相关的内容,用来打通工作流,这部分不需要死记,知道有这么个入口、需要时能找回来就行。窗口置顶和半透明这类小功能,看一遍就够,但一定要在实际校对时用起来,不然永远体会不到它的价值。繁简转换和正则替换可以放在一起练,因为它们经常同时出现在整理港台版本书目的场景里。最后提醒一句:PDG 目录编辑涉及压缩包内文件读写,操作前确认压缩包没有损坏,否则保存失败会让人很沮丧。拿小文件试手,确认流程通了再上大文件,这是最稳妥的练习节奏。


软件简介
PdgCntEditor 是一款目录(书签)编辑器,主要特点如下:

1. 支持格式

  • PDF(不支持加密 PDF)、DjVu、PDG(bookcontents.dat、catalog.dat)

2. 编辑模式

  • 文本模式、树形模式,满足不同编辑习惯

3. PDG 专用功能

  • 提供 PDG 目录编解码功能,可直接编辑 zip 包中的 PDG 目录文件并保存

4. 联动与调用

  • 与 UnicornViewer(UV)联动,编辑后自动刷新目录
  • 支持 FreePic2Pdf_bkmk.txt 格式目录文件
  • 可从 DjVuToy、FreePic2Pdf 中启动

5. 辅助功能

  • 窗口置顶、半透明显示,便于对照原文编辑
  • 繁简转换
  • 查找 / 替换
  • 文本模式下支持正则表达式(VBScript/JavaScript 语法)