【免费下载链接】sumatrapdf
SumatraPDF reader
本篇指南以官方文档 docs/md/Installation.md 为骨架,系统讲解 SumatraPDF 的多种分发形态(安装器 / 便携版 / 仅解压)、安装器命令行参数、便携版与安装版的设置存储差异,以及升级被占用文件、安装损坏、"打开 PDF 却弹出安装器" 等高频问题的排解路径。读完你将掌握如何按场景选择安装方式、如何用命令行实现静默部署与定向解压,并能独立诊断与修复绝大多数安装类故障。
一、选择适合你的分发形态(Download flavors)
SumatraPDF 以多种形式分发,官方文档给出的选择依据如下表所示:
| 形态 | 交付物 | 适用场景 |
|---|---|---|
安装器(SumatraPDF-<ver>-install.exe) | 安装到 %LOCALAPPDATA%\SumatraPDF(配合 -all-users 则装到 %PROGRAMFILES%),注册文件关联,可选安装预览处理器 | 大多数普通用户 |
便携版(SumatraPDF-<ver>.exe,以 SumatraPDF-<ver>.zip 形式下载) | 单个自包含 .exe,无需独立 libsumatrapdf.dll,设置文件与 exe 同目录存放 | U 盘、自定义目录、不想运行安装器的环境 |
仅解压(-x) | 只解包文件、不安装 | IT 脚本、检查文件内容 |
从 3.7 版本起,官方简化了分发模型:便携版与安装器是同一个可执行文件(参见 docs/md/SumatraPDF-portable.md)。可执行文件名中包含 -install(官方安装器下载后会以此方式重命名自身)或显式传入 -install 参数时,它就以安装器模式运行;否则以便携模式运行。
由于 Windows 的技术限制,这个"一石二鸟"的可执行文件必须把引擎库 libsumatrapdf.dll 释放到磁盘——默认位置是 %LOCALAPPDATA%\SumatraPDF-data\<build-id>\libsumatrapdf.dll(实现细节),如果你愿意,也可以把它放到 SumatraPDF.exe 旁边。在 3.7 之前,引擎库名为 libmupdf.dll,便携版则是完全独立的可执行文件,这一历史差异会影响到旧文档、杀毒软件日志以及本文后面讨论的升级排错。
二、运行安装器
双击安装器即可完成安装;需要自动化部署时,可静默安装:
SumatraPDF-<ver>-install.exe -install -silent
安装器常用选项(完整清单见 docs/md/Installer-cmd-line-arguments.md,可用 -help 查看当前版本支持的全部选项):
| 选项 | 含义 |
|---|---|
-d <dir> | 指定安装目录 |
-all-users | 为所有用户安装到 %PROGRAMFILES%\SumatraPDF(3.4+),并写入 HKLM 注册表 |
-with-preview | 在文件资源管理器中注册 PDF 预览 |
-with-filter | 注册 Windows Search 的 PDF 搜索过滤器 |
-log | 将安装日志写入 %LOCALAPPDATA%\sumatra-install-log.txt(3.2+;安装结束时若存在 UI 会以记事本打开该日志) |
其余选项还包括:
-s/-silent:静默安装,不显示 UI;-uninstall:卸载 SumatraPDF(3.2+ 之前通常经由控制面板卸载,见 docs/md/Uninstalling-SumatraPDF.md);-fast-install(3.6+):供自动更新使用的内部选项,以默认选项自动开始安装,完成后自动启动应用。
从源码 src/Installer.cpp 可以看到这些参数如何串联成安装流程:非静默模式下,安装器把 -all-users、-with-filter、-with-preview、-silent、-fast-install 等选项拼接进子进程命令行(src/Installer.cpp#L1306-L1330),必要时以提升权限重启自身(Restarting as elevated,见 src/Installer.cpp#L2431-L2442);安装到 %PROGRAMFILES% 的"all users"安装必然伴随 UAC 提权。
静默部署实战
面向企业的批量部署可以组合使用这些参数,例如为全公司所有用户安装并同时注册搜索过滤器与预览处理器:
SumatraPDF-3.7.5-install.exe -install -silent -all-users -with-preview -with-filter -log
注意:-all-users 需要管理员权限,静默模式下安装器会自动以提升权限重启自身完成安装。
三、仅解压而不安装(-x)
不需要注册文件关联、只想把文件解包出来时:
SumatraPDF-64-install.exe -x -d "C:\Temp\Sumatra"
这会向目标目录解出 SumatraPDF.exe、libsumatrapdf.dll、sumatrapdf-tool.exe 等文件,但不会注册文件关联,也不会创建开始菜单 / 桌面快捷方式(新版本构建在仅解压时不创建)。
关于 -x 的一个实用细节(来自 docs/md/Installer-cmd-line-arguments.md):若目标目录就是该可执行文件自身所在的目录,则 SumatraPDF.exe 会保留原位,只解包其余载荷(libsumatrapdf.dll 与安装文件)。在 src/Installer.cpp#L840-L866 中也可以看到:-x 提取到自身目录时会跳过对正在运行的 exe 的处理。如果控制台已附加,解压过程的错误会打印到控制台,便于脚本捕获。
-x 的典型用途:
- IT 脚本批量分发——解压后按需拷贝或直接运行;
- 检查安装包内容是否完整;
- 用官方安装器修复损坏的安装(见下文)。
四、便携版与安装版的设置存储差异
| 便携版 | 安装版 | |
|---|---|---|
| 设置文件 | 与 .exe 同目录 | %LOCALAPPDATA%\SumatraPDF\SumatraPDF-settings.txt |
| 缩略图缓存 | exe 旁边的 sumatrapdfcache | %LOCALAPPDATA%\SumatraPDF\sumatrapdfcache |
两种形态都可以通过 -appdata <directory> 覆盖设置目录,详见 docs/md/Command-line-arguments.md 与 docs/md/How-we-store-settings.md。
自定义设置目录(企业 / RDP 场景)
在启动快捷方式中追加参数:
SumatraPDF.exe -appdata "D:\Shared\SumatraSettings"
所有共享该路径的用户使用同一个 SumatraPDF-settings.txt。务必保证该目录对所有运行 SumatraPDF 的账户可写,否则设置无法保存。这一机制常用于终端服务器(RDP)或共享工作站的统一配置管理。
五、升级失败:文件被占用(PdfFilter.dll / PdfPreview.dll / libsumatrapdf.dll)
升级时安装器会先把旧 DLL 改名挪开(rename aside),再写入新文件。如果 Windows 仍持有旧文件的打开句柄,改名就会失败。最容易卡住升级的 DLL 及常见的占用方:
| 文件 | 常被谁占用 |
|---|---|
PdfFilter.dll | Windows Search(SearchIndexer.exe、SearchFilterHost.exe),在注册 PDF IFilter 之后 |
PdfPreview.dll | 文件资源管理器预览窗格 / dllhost.exe / prevhost.exe |
libsumatrapdf.dll | 正在运行的 SumatraPDF、资源管理器预览、搜索过滤器宿主进程 |
安装期间典型的 Windows 错误码:
- 32:共享冲突(sharing violation),文件被占用;
- 5:访问被拒绝(access denied),无法替换 / 删除。
安装器实际做了什么
从 src/Installer.cpp 的实现(如 PrepareInstallDirByRenaming 与 MoveAsideInstallFile,见 src/Installer.cpp#L764-L868)可以还原出以下步骤:
- 注销搜索过滤器与预览处理器(若已安装);
- 尽可能停止 Windows Search 服务(
WSearch); - 结束仍加载安装目录模块的进程;
- 把
PdfFilter.dll、PdfPreview.dll、libsumatrapdf.dll改名为*.copy; - 如果改名仍被阻塞,弹出对话框并每隔几秒重试一次,直到成功或用户中止;静默模式(
silent)下则以约 3 秒间隔静默重试约 60 秒(见 src/Installer.cpp#L266、src/Installer.cpp#L788-L791)。
你可以怎么做
- 关闭所有 SumatraPDF 窗口以及其他 PDF 应用;
- 关闭打开了 PDF 预览窗格的资源管理器窗口(或直接关闭预览窗格);
- 临时停止 Windows Search:
Win+R→services.msc→ 找到 Windows Search → 停止;- 或以管理员身份运行
net stop WSearch;
- 重新运行安装器(若安装到 Program Files 的 "all users" 位置,需以管理员身份运行);
- 安装完成后,如之前停止过,再启动 Windows Search:
net start WSearch。
如果仍然失败,请重启电脑,并在打开 PDF 或浏览启用预览的文件夹之前先运行安装器。
六、损坏或不完整的安装
如果 SumatraPDF 提示损坏的安装,原因通常是二选一:
libsumatrapdf.dll缺失(不在SumatraPDF.exe旁边);libsumatrapdf.dll存在,但版本与SumatraPDF.exe不匹配。
修复方法:运行官方安装器;或改用自包含的便携版 exe;或使用 -x 解压,确保两个文件版本一致。
如果应用能启动但无法加载 DLL(错误往往来自杀毒软件),参见 docs/md/Failed-to-load-libmupdf.md:便携版 / 预发布版首次运行会把 libsumatrapdf.dll 释放到 exe 旁边或 %LocalAppData%\SumatraPDF-data\,实时防护 / 行为防护 / 勒索软件防护可能拦截对刚写入 DLL 的 LoadLibrary、隔离或删除该 DLL,并返回异常错误码(如 87"参数无效"、5 访问被拒绝、32 共享冲突)。应对手段包括:为 SumatraPDF 目录与 %LocalAppData%\SumatraPDF-data\ 添加杀毒排除项、临时关闭实时扫描启动一次再恢复、到隔离区恢复被误删的 DLL、优先使用官方安装器,以及重新下载确保文件完整。
七、打开 PDF 却弹出安装器
SumatraPDF 只在以下两种情况下显示安装器 UI:
- 可执行文件名包含
-install(官方安装器下载后会以此方式重命名自身); - 显式传入
-install参数。
如果你双击 PDF 却启动了安装器,通常是以下原因:
- 文件关联指向的是安装器
.exe,而不是已安装的SumatraPDF.exe; - 你运行的是 Downloads 里拷贝的安装器副本,而非已安装的副本。
对策:重新运行官方安装器完成安装,然后按 docs/md/Set-as-default-pdf-viewer.md 重新设置默认 PDF 查看器(该文档详细介绍了在文件资源管理器中通过"打开方式 → 选择其他应用"勾选"始终使用此应用",以及通过 Windows 11 设置应用"默认应用"按扩展名指定 SumatraPDF 两种路径)。
八、多副本 / 旧版本残留
%LOCALAPPDATA% 中的旧版 SumatraPDF 或改名的便携副本可能干扰文件关联。建议先通过"设置 → 应用"卸载(见 docs/md/Uninstalling-SumatraPDF.md),再重新安装。便携版卸载只需删除 SumatraPDF.exe 及其目录即可。
九、管理员 vs 普通用户
日常阅读不要以管理员身份运行 SumatraPDF。提升权限的实例无法打开从普通资源管理器会话拖放的文件,会提示 "running as admin and cannot open files from a non-admin process"。只有安装、卸载或修改系统级关联时才需要提权。
十、命令行工具
完整安装后,sumatrapdf-tool.exe 位于 SumatraPDF.exe 旁边并已加入 PATH。若使用便携版 exe,则无需解压该文件即可运行同样的命令——直接以 SumatraPDF.exe <tool> 形式调用(工具清单见 docs/md/Tools.md),也可以用 -x 解出 sumatrapdf-tool.exe。两种方式都无需安装。也就是说,即便只持有便携版,也能进行 PDF 合并、拆分、加密、提取文本等批量操作。
十一、相关文档导航
- docs/md/SumatraPDF-portable.md — 便携版与安装器的对比、3.7 单一 EXE 布局、DLL 解压位置、安装器命名与
-install标志 - docs/md/Installer-cmd-line-arguments.md — 安装器命令行参数完整列表
- docs/md/Corrupted-installation.md — 损坏安装的成因与修复
- docs/md/Failed-to-load-libmupdf.md —
libsumatrapdf.dll加载失败(常见为杀毒软件) - docs/md/Uninstalling-SumatraPDF.md — 卸载说明
- docs/md/Set-as-default-pdf-viewer.md — 设置默认 PDF 查看器
- docs/md/How-we-store-settings.md — 设置存储机制
- docs/md/FAQ.md — 常见问题汇总
【免费下载链接】sumatrapdf
SumatraPDF reader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



