SumatraPDF不支持直接导出收藏夹,需通过四种方法实现:一、手动解析sumatrapdfprefs.dat中Favorites区块;二、用Python脚本自动化提取为CSV/JSON;三、借助PdfDjvuBookmarker中转重建并导出;四、通过带[FAV]标识的注解导出间接构建书签索引。

如果您在SumatraPDF中积累了大量收藏夹(即用户自定义书签),但需要将这些标记导出为外部文件以便备份、迁移或跨平台复用,则需注意:SumatraPDF原生不提供直接导出收藏夹列表为文本或结构化文件的功能。以下是实现该目标的多种可行操作方法:
一、通过配置文件手动提取收藏夹数据
SumatraPDF将所有收藏夹信息持久化保存在本地配置文件 sumatrapdfprefs.dat 中,该文件为纯文本格式(UTF-8编码),内含结构化键值对。收藏夹条目以 FavTreeItem 和 Favorite 结构形式存储,可通过解析获取页面位置与命名信息。
1、关闭SumatraPDF程序,确保配置文件未被锁定
2、定位配置文件路径:通常位于 %APPDATA%\SumatraPDF\sumatrapdfprefs.dat(Windows)或 ~/.config/sumatrapdf/sumatrapdfprefs.dat(Linux)
3、用文本编辑器(如Notepad++或VS Code)打开 sumatrapdfprefs.dat 文件
4、搜索关键词 "Favorites",定位到 Favorites = [ ... ] 区块
5、复制该区块内全部内容,粘贴至新文本文件并保存为 favorites_backup.txt
二、使用第三方脚本自动化解析与导出
由于 sumatrapdfprefs.dat 使用类INI格式但嵌套层级较深,手动提取易出错。可借助Python脚本完成结构化解析,提取每项收藏夹的文档路径、页码、名称及时间戳等字段,并导出为CSV或JSON格式。
1、安装Python 3.8及以上版本
2、创建脚本文件 parse_favorites.py,写入基于正则与递归解析的逻辑(匹配 Favorite { ... } 块)
3、运行命令:python parse_favorites.py --input "%APPDATA%\SumatraPDF\sumatrapdfprefs.dat" --output favorites_export.csv
4、检查生成的 CSV 文件,确认包含 Filename、PageNo、Name、CreatedTime 等列
三、借助外部书签管理工具中转导出
SumatraPDF支持通过“打开方式”调用外部工具处理当前文档,可利用兼容PDF大纲编辑的第三方程序(如PdfDjvuBookmarker)加载同一PDF,并将其内置书签结构与SumatraPDF收藏夹人工对照后重建导出。
1、确保已安装 PdfDjvuBookmarker 并配置于SumatraPDF的“打开方式”菜单中
2、在SumatraPDF中右键当前PDF → “打开方式” → “Pdf & Djvu Bookmarker”
3、在PdfDjvuBookmarker中手动添加与收藏夹位置一致的新书签(需逐条比对页码)
4、使用PdfDjvuBookmarker的“导出书签”功能,选择XML或TXT格式保存
四、利用SumatraPDF命令行与插件扩展导出注解间接关联书签
虽无法直接导出收藏夹,但SumatraPDF支持将PDF中的高亮、笔记等注解导出为TXT文件(Save Annotations To TXT)。若用户习惯在添加收藏夹的同时插入带标识符的文本注解(例如“[FAV]关键公式推导”),即可通过注解导出反向构建书签索引。
1、在目标页面添加文本注解,内容以 [FAV] 开头并附说明
2、点击菜单栏“文件” → “另存为” → “保存注解到TXT”
3、打开导出的 annotations.txt,筛选所有含 [FAV] 的行
4、用Excel或脚本提取行首页码与后续描述,整理为书签列表表格


















