在 Windows 上用 Inno Setup 静默装 PasteMD 0.1.7.4,装完占 325.4 MB,其中 232,992,520 字节是一个 pandoc.exe。

安装包本身只有 56,449,767 字节,解压后膨胀到 6 倍,多出来的部分基本就是那个转换引擎。

PasteMD 0.1.7.4 装完占多大?

这是一个常驻托盘的小工具,作用是把剪贴板里的 Markdown 或网页 AI 回复转成 Word 文档,按一次热键贴进 WPS 或 Word 的光标位置。安装器是 Inno Setup,静默参数跟 NSIS 不一样。

setup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /DIR=D:\PasteMD_app
exit 0,耗时 20 秒

安装目录:325.4 MB(45 文件 + 13 目录)
  PasteMD.exe      35,829,760
  pandoc.exe      232,992,520
  其余为 Python 3.12 运行时与 .pyd

第一次用 /S 装失败了,弹出「选择安装程序安装模式」窗口,因为 /S 是 NSIS 的参数,这个包是 Inno Setup 做的,静默要用 /VERYSILENT。

项目字节数占安装体积
安装包 setup.exe56,449,767—
PasteMD.exe35,829,76010.5%
pandoc.exe232,992,52068.3%
安装目录合计341,172,628100%

232992520 ÷ 341172628 = 0.683,pandoc 一个文件占了近七成。如果不做批量转换,这个体积换来的只是「不用自己装 pandoc」。

顺带一提,安装器支持 /LOG 参数,把每一步写进文本文件。排查装到一半失败时,这比反复重装省事。

装完不会弹主窗口,程序直接进托盘。想改设置要在托盘图标上右键,配置文件也可以直接编辑,改完重启生效。开机自启是安装器写进注册表的,默认打开,不喜欢要去托盘菜单里关。

安装目录可以任意指定,用 /DIR 参数就行。这一点比很多国产工具强,那些默认装进 AppData,想搬到 D 盘得手动改。

内置的 pandoc 3.10.1 能转出什么?

PasteMD 自带一份完整的 pandoc,版本 3.10.1,带 server 和 lua 两个特性。用它单独转文件也能跑,不必经过托盘程序。

pandoc --version
pandoc 3.10.1
Features: +server +lua
Scripting engine: Lua 5.4

pandoc t.md -o out.docx
out.docx  11,640 字节

测试文件里放了标题、粗体斜体、行内代码、一张三列表格、编号列表、代码块、行内公式和独立公式。转出来的 docx 只有 11,640 字节,比源文件大不了多少。

Markdown 写法docx 里变成
# 标题Heading1 样式
## 标题Heading2 样式
普通段落BodyText / FirstParagraph
三列表格Table 样式,表头标 tblHeader
``` 代码块SourceCode 样式
1. 2. 3.w:numPr 编号,3 项
$E=mc^2$m:oMath 公式对象

样式全是语义化的,没有把标题写成「大字加粗」这种手搓格式。这意味着粘进 WPS 后,文档大纲、导航窗格、样式刷都能识别。

选 pandoc 而不是自己写转换,好处是覆盖面。同一份 Markdown 换一个输出参数就能出 HTML、PDF 或 pptx,PasteMD 只是把它包了一层热键和剪贴板监听。代价是必须背上这个 232 MB 的二进制,哪怕你只想要一份 docx。

转出来的 docx 里有什么?

把 docx 当 zip 解开,能看到 16 个内部文件,正文只有 8,203 字节。

docx 内文件数          16
document.xml           8,203 字节
表格 / 行 / 单元格     1 / 4 / 12
公式 m:oMath           2(含 1 个独立公式块)
编号列表项 w:numPr     3
段落 w:p               25
样式定义               81
文档用到的样式         BodyText Compact FirstParagraph Heading1 Heading2 SourceCode

1 张表 4 行 12 个单元格,正好对应源文件里的表头加三行数据。公式 2 个,行内那个和独立那个都在,独立公式还单独包了一层 m:oMathPara。

表格的列宽写死在 tblGrid 里。

每列列宽       2640 twips
三列合计       2640 × 3 = 7920 twips
A4 正文宽度    8306 twips
样式总数       81,实际用到 6,多余 75

7920 比 8306 小,所以这张表会略窄于版心,不会顶到页边距。

81 个样式定义里,文档真正用到的只有 6 个。剩下 75 个是 pandoc 的默认样式表带过来的,粘进 WPS 后会一并进入目标文档的样式库。

这一步的副作用是样式面板会变长。粘十次就有十份同名样式,WPS 会自动加序号,肉眼很难分辨哪份是原稿的。要长期用,建议把 reference_docx 指到一份自己的模板上,让 pandoc 只输出你定义过的那几个样式。

config.json 里 26 个键管什么?

配置在用户目录下,首次启动生成,1,614 字节,26 个键。热键和 pandoc 路径都在里面,样式模板那一项默认是 None。

%APPDATA%\PasteMD\config.json
  文件大小      1,614 字节
  hotkey        <ctrl>+<shift>+b
  pandoc_path   D:\PasteMD_app\pandoc\pandoc.exe
  no_app_action open
  键数          26
键作用
hotkey触发键,默认 Ctrl+Shift+B
pandoc_path指向自带的 pandoc.exe
reference_docx样式模板路径,默认 None,即用 pandoc 自带样式表
no_app_action没找到 Word/WPS 时怎么办,默认 open
enable_excel表格转 Excel 的开关
paste_delay_s粘贴前等几秒,默认 0.3
Keep_original_formula公式保留原始写法

no_app_action 默认是 open,意思是没检测到目标编辑器就直接把 docx 打开,而不是丢弃。这个默认值对「只想拿文件」的用法比较友好。

启动日志里还有一段 SSL 诊断,会打印 libssl 和 libcrypto 的加载状态,然后是版本检查。

[2026-10-21 12:36:22] [INFO] SSL diag: OPENSSL_VERSION=OpenSSL 3.0.16 11 Feb 2025
[2026-10-21 12:36:22] [INFO] Checking version (no proxy)...
[2026-10-21 12:36:22] [INFO] Already on latest version: 0.1.7.4

版本检查写成 no proxy,说明它默认不走系统代理。这一步失败也不会拦住主功能,只是提示更新失败。

整个配置就是一个 1,614 字节的 JSON,换机器时直接拷过去即可。只有 pandoc_path 这一项是绝对路径,装机位置变了要跟着改,否则热键按下会报找不到转换引擎。

PasteMD 在什么条件下会失败?

三种情况来自这次实际碰到的现象。托盘程序确实起来了,进程占 122,768 KB。

PasteMD.exe   122,768 KB 常驻
热键链路       未验证(剪贴板被占)
配置写入       %APPDATA%\PasteMD\config.json
触发条件现象(报错原文)对应步骤
用 NSIS 的 /S 参数装弹出「选择安装程序安装模式」窗口第一次安装
把安装目录交给 safe-delete 删trash-failed,安装包和目录一起进回收站清理旧目录
机器上没有 Word 或 WPSno_app_action=open,直接开 docx按热键后

只在 Windows、PasteMD 0.1.7.4、pandoc 3.10.1、WPS 12.1 这一种组合下测过,没在 Word 365 上复测。

  • 未验证:完整的热键链路。托盘程序起来了,进程占 122,768 KB,但没做「复制 Markdown 再按 Ctrl+Shift+B 贴进 WPS」这一整套,剪贴板当时被其他程序占用。
  • 未验证:表格转 Excel。enable_excel 开关在配置里,没有实际导过 xlsx。
  • 未验证:网页 AI 回复的 HTML 抓取。这条要配合浏览器权限,没测。
  • 未验证:自定义 reference_docx 换模板的效果。只用了 pandoc 默认样式表。

如果你用的是 macOS 版,本文关于安装参数和路径的结论不能照搬,那条路径没有测。