SumatraPDF 安装完全指南:安装器、便携版、静默部署与疑难排解

  • 桌面应用
  • 文档

【免费下载链接】sumatrapdf

SumatraPDF reader

项目地址: https://gitcode.com/gh_mirrors/su/sumatrapdf
点击查看 免费下载

本篇指南以官方文档 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.dllWindows 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)可以还原出以下步骤:

  1. 注销搜索过滤器与预览处理器(若已安装);
  2. 尽可能停止 Windows Search 服务(WSearch);
  3. 结束仍加载安装目录模块的进程;
  4. 把 PdfFilter.dll、PdfPreview.dll、libsumatrapdf.dll 改名为 *.copy;
  5. 如果改名仍被阻塞,弹出对话框并每隔几秒重试一次,直到成功或用户中止;静默模式(silent)下则以约 3 秒间隔静默重试约 60 秒(见 src/Installer.cpp#L266、src/Installer.cpp#L788-L791)。

你可以怎么做

  1. 关闭所有 SumatraPDF 窗口以及其他 PDF 应用;
  2. 关闭打开了 PDF 预览窗格的资源管理器窗口(或直接关闭预览窗格);
  3. 临时停止 Windows Search:
    • Win+R → services.msc → 找到 Windows Search → 停止;
    • 或以管理员身份运行 net stop WSearch;
  4. 重新运行安装器(若安装到 Program Files 的 "all users" 位置,需以管理员身份运行);
  5. 安装完成后,如之前停止过,再启动 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 合并、拆分、加密、提取文本等批量操作。

十一、相关文档导航

  • 桌面应用
  • 文档

【免费下载链接】sumatrapdf

SumatraPDF reader

项目地址: https://gitcode.com/gh_mirrors/su/sumatrapdf
点击查看 免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值