sublime text 无法直接导出 pdf,需通过 exporthtml 插件生成 html 后用 chrome/edge 打印为 pdf;该方案保留主题配色、行号等细节,避免 wkhtmltopdf 兼容性问题及模糊截断等打印缺陷。

Sublime Text 本身不支持直接导出 PDF
它没有内置的「导出为 PDF」功能,点菜单、查插件市场、翻设置都找不到原生选项。所有声称“一键转 PDF”的教程,实际都是靠外部工具链间接实现的——核心思路是:先用 Sublime 渲染出带语法高亮的 HTML,再把 HTML 转成 PDF。
推荐方案:用 ExportHtml 插件 + 浏览器打印
这是目前最稳定、可控性最强、且不依赖命令行的方法。关键在于:ExportHtml 能保留 Sublime 的主题配色、字体缩放、行号、折叠状态等细节,生成的 HTML 在 Chrome / Edge 里直接打印为 PDF 效果接近所见即所得。
操作步骤:
- 通过 Package Control 安装
ExportHtml(别装错成同名但已弃更的老版本) - 选中要导出的代码区域,或保持整个文件打开,按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入ExportHtml: Export回车 - 在弹出的选项中勾选
Include line numbers、Use current color scheme,输出格式选HTML - 生成的
.html文件默认保存在临时目录,用 Chrome 打开它 →Ctrl+P→ 勾选Background graphics→ 选择「另存为 PDF」
注意:ExportHtml 默认用系统默认浏览器打开 HTML,但 Safari 对 CSS 支持弱,可能导致高亮错乱;务必用 Chrome 或 Edge。
为什么不用 sublimetext-pdf 或其他自动 PDF 插件
这类插件底层调用的是 wkhtmltopdf 或 Electron 渲染,问题集中在这几处:
-
wkhtmltopdf不识别 Sublime 主题里的自定义 CSS 变量,导致 Python 字符串颜色变成灰色块 - 部分插件强制使用固定字号(如 10px),无法匹配你当前设置的
font_size,导出后代码挤成一团 - 对多光标、高亮选区、折叠代码块的支持几乎为零,导出内容常缺段落
- macOS 上若未手动安装
wkhtmltopdf命令行工具,插件会静默失败,连错误提示都不报
打印 PDF 时容易糊掉的三个细节
即使 HTML 渲染正确,PDF 输出仍可能模糊、截断、或丢掉边距:
- Chrome 打印设置里必须关掉「Headers and footers」,否则页眉页脚会覆盖代码顶部和底部
- 缩放比例不要选「Fit」或「Shrink to fit」,它们会无损压缩整个页面,让小字号代码变虚;固定选
100%,靠调整Margin和Paper size来适配 - 如果代码行太长,浏览器默认不换行,PDF 里会横向溢出。解决方法:在
ExportHtml设置里开启Word wrap,或导出后手动编辑 HTML,在<style></style>块里加pre { white-space: pre-wrap; }
真正麻烦的不是怎么点几下,而是导出后要不要手动调 HTML —— 很多用户卡在这一步,以为“导出了就完事”,结果 PDF 里全是横向滚动条。











