exporthtml插件+chrome打印是唯一稳定保留配色、行号和中文字体的方案;其核心在于生成html后由浏览器渲染,需勾选use current color scheme和full_page,配置font-family及打印时启用background graphics。

ExportHtml 插件 + Chrome 打印是目前唯一稳定保留配色、行号和中文字体的路径;别信“一键导出 PDF”按钮——Sublime Text 本身不支持原生 PDF 导出,所有方案都绕不开 HTML 中转。
为什么不能直接用菜单里的「Export as PDF」?
菜单里根本没这个选项。ExportHtml 是第三方插件,不是 Sublime 内置功能;所谓“导出 PDF”,本质是生成 HTML 后靠浏览器渲染再打印。试图在 File → Export 或右键菜单里找原生 PDF 功能,只会浪费时间。
ExportHtml 配置哪些选项才不丢颜色?
导出时弹出的配置面板里,这几个参数直接影响高亮是否可见:
- 必须勾选
Use current color scheme:不勾就全灰,哪怕你当前用的是 Monokai 或 Dracula - 必须勾选
full_page:不勾只输出<pre class="brush:php;toolbar:false;"></pre>块,没和内联 CSS,打开就是白底黑字 - 建议关闭
wrap_lines:开启后 HTML 强制折行,Chrome 打印 PDF 时可能把get_user_data()拆成两行,语义断裂 -
include_line_numbers看需求:勾选会加行号列,但列宽不可控,PDF 里容易挤压代码区;推荐关掉,用编辑器自带行号更准
Chrome 打印 PDF 时中文发虚、背景变灰怎么办?
问题不在 Sublime,而在导出的 HTML 的 font-family 声明缺失或 Background graphics 设置冲突:
- 用文本编辑器打开刚生成的
.html文件,在<style></style>块里找到font-family,替换成:font-family: 'Fira Code', 'Consolas', 'Microsoft YaHei', 'STHeiti', sans-serif; - Windows 用户确认系统有
Microsoft YaHei(Win10/11 默认自带);macOS 用户检查是否装了STHeiti或Noto Sans CJK SC - Chrome 打印设置里务必勾选
Background graphics—— 否则所有主题背景色全丢;但若中文字体仍发虚,反直觉地关掉它,反而能触发更好的抗锯齿渲染 - 关闭页眉页脚,否则每页顶上多一行 URL,底下一串页码
- 缩放选
100%或Fit,别选Shrink to fit,否则字体糊、行距压缩
批量导出或集成进 CI 怎么办?
GUI 操作太慢,用 pygmentize + wkhtmltopdf 更可控,但注意它不读取 Sublime 主题:
- 先装依赖:
pip install Pygments,再按系统装wkhtmltopdf(macOS:brew install wkhtmltopdf;Windows:下载二进制并加进 PATH) - 命令示例:
pygmentize -f html -O full,style=monokai,linenos=inline,font_size=12pt input.py | wkhtmltopdf --enable-local-file-access - output.pdf -
--enable-local-file-access是关键,否则中文字体 @font-face 加载失败 -
style=monokai接近 Sublime 默认深色主题;浅色场景换style=vs











