VSCode原生不支持导出PDF,必须依赖插件;稳定方案仅有Markdown Preview Enhanced配Puppeteer(需先开其预览再导出)或Pandoc配XeLaTeX(出版级排版)。

VSCode 原生只支持 Markdown 实时预览,不支持导出 PDF;所谓“一键导出”全靠插件,且不同插件底层机制完全不同——选错就卡在空白页、方块字或命令未找到。
Ctrl+Shift+V 预览打不开?先确认这三件事
快捷键失效不是插件没装好,而是 VSCode 没把当前文件当 Markdown 处理:
- 文件后缀必须是
.md或.markdown,Untitled-1这类无名标签页不会触发预览 - 文件必须已保存(右上角无圆点),未保存状态无法启动预览进程
- 内置扩展
Markdown Language Features和Markdown Preview必须启用——进 Extensions 搜这两个名字,开关得是开的
如果装了 Markdown Preview Enhanced,它会劫持 Ctrl+Shift+V,此时原生预览失效;想用它就得改用 Ctrl+K V 唤出自己的预览窗。
导出 PDF 报错 “command 'markdown.exportToPDF' not found”
这个错误说明你正试图调用一个根本不存在的原生命令。VSCode 内置没有 PDF 导出功能,所有带 “export” 的命令都来自第三方插件:
将PDF文件(含扫描件、图片)转换为Markdown格式。接入MinerU和PaddleOCR双引擎,支持扫描件OCR识别、公式表格解析、多语言识别。兼容本地OCR识别。
-
Markdown PDF(作者 yzane)提供Markdown PDF: Export (pdf)命令,但依赖本地 Chromium 可执行文件,若chrome或msedge不在PATH中,就会静默失败 -
Markdown Preview Enhanced(作者 shd101wyy)提供Markdown Preview Enhanced: Export to PDF,但它要求你**先用它的预览器打开文档**(右键 →Open Preview to the Side),而不是用原生Ctrl+Shift+V - 如果命令面板里搜不到任何 export 相关条目,说明两个插件都没装,或装了但被禁用
导出后中文是方块、公式不渲染、Mermaid 图空白
这不是 CSS 没写对,是底层渲染引擎根本不支持 JS 执行:
-
Markdown PDF插件默认用 Puppeteer 启 Chrome 渲染,但若你没手动配markdown-pdf.executablePath,它可能 fallback 到老旧的 PhantomJS —— 它压根不执行 JS,所以 Mermaid、MathJax 全部失效 - 中文乱码主因是字体 fallback 缺失:Puppeteer 默认不加载系统中文字体,必须在自定义 CSS 里显式声明,例如:
@font-face { font-family: 'pdf-font'; src: local('PingFang SC'), local('Microsoft YaHei'); },再给body设font-family: 'pdf-font' -
Markdown Preview Enhanced虽然也用 Puppeteer,但它会在预览阶段就完成 JS 渲染(Mermaid 转 SVG、LaTeX 转 MathML),导出的是最终 DOM 快照——所以预览里看不到的,导出后一定没有
真正稳定导出 PDF 的只有两条路
别信“一键全自动”,所有靠谱路径都有硬性依赖和配置坑:
-
Pandoc + XeLaTeX:适合技术文档、论文级排版。需装
pandoc和完整texlive(>2GB),命令如pandoc input.md -o output.pdf --pdf-engine=xelatex。优点是目录、页眉页脚、跨页表格全可控;缺点是安装重、调试周期长 -
Markdown Preview Enhanced + Puppeteer:适合日常快速交付。必须全局装
puppeteer(npm install -g puppeteer),并在设置里填对markdown-preview-enhanced.puppeteerPath;macOS 首次运行常弹「开发者无法验证」,要去「系统设置 → 隐私与安全性」手动放行
最易忽略的点:PDF 导出效果完全取决于你用哪个预览器打开文档——用原生预览,哪怕装了 MPE,右键菜单也不会出现它的导出选项;而用 MPE 预览,又必须确保 Mermaid 和公式在预览窗口里已真实渲染出来,否则导出就是白纸。


















