Notepad++无法直接导出PDF或批量打印为独立PDF文件,因其无内置PDF引擎;Windows“Microsoft Print to PDF”仅能保存首个文件,真正批量需借助wkhtmltopdf等命令行工具配合HTML封装实现。

Notepad++ 本身不支持导出 PDF 或批量打印
Notepad++ 是纯文本编辑器,没有内置 PDF 导出引擎,也不提供“批量转 PDF”功能。你看到的所谓“一键转换”,实际是借助外部工具或系统打印功能间接实现的。直接在 Notepad++ 菜单里找 Export to PDF 或类似选项,注定找不到。
Windows 系统自带的 “Microsoft Print to PDF” 是最可行的批量打印入口
它本质是一个虚拟打印机,能把任意能“打印”的内容转成 PDF。Notepad++ 支持批量打开文件并统一调用打印,但需手动触发 —— 没有真正意义的“一键”。关键在于绕过图形界面、减少点击:
- 先用
File → Open多选所有目标.txt文件(按住Ctrl或Shift),它们会以多标签形式加载 - 按
Ctrl + P呼出打印对话框,选择打印机为Microsoft Print to PDF - 勾选
Print all open files(该选项仅在多标签打开时出现) - 点击
Print,系统会弹出保存对话框 —— 注意:它只会保存**第一个文件**为 PDF,其余文件被忽略
也就是说,Print all open files 在 Notepad++ 中只是个误导性选项:它会逐个发送打印任务,但 Windows 虚拟打印机每次只接受一个输出路径,后续任务直接失败或覆盖前一个文件。
真正能批量生成独立 PDF 的方案只有命令行 + 第三方工具
推荐使用轻量开源工具 wkhtmltopdf(支持 Windows/macOS/Linux),它能把 HTML 渲染为 PDF。而 Notepad++ 可通过“运行”菜单执行预处理命令,把文本转为带样式的 HTML 再批量调用:
- 安装
wkhtmltopdf并将wkhtmltopdf.exe加入系统PATH - 在 Notepad++ 中打开任意文本文件,按
F5打开“运行”对话框,输入:
cmd /c for %f in ($(CURRENT_DIRECTORY)\*.txt) do @wkhtmltopdf --page-size A4 --margin-top 10 --margin-bottom 10 "%f" "%~nf.pdf"
⚠️ 注意:%f 是 cmd 单行命令语法;若存为脚本需改用 %%f。该命令会在当前目录下为每个 .txt 生成同名 .pdf,但原始换行、缩进可能丢失 —— 因为 wkhtmltopdf 默认按 HTML 解析,纯文本需额外加 <pre> 包裹。更稳妥的做法是先用 PowerShell 批量加壳:
powershell -Command "Get-ChildItem *.txt | ForEach-Object { $c=(Get-Content $_.FullName); $html="<html><body><pre style='font-family:Consolas;font-size:10pt;line-height:1.3;'>$c</pre></body></html>"; $html | Out-File "$($_.BaseName).html" -Encoding UTF8 }; Get-ChildItem *.html | ForEach-Object { wkhtmltopdf $_.FullName $_.BaseName.pdf }"
别指望 Notepad++ 插件解决根本问题
旧版插件如 NppExport 只能导出当前文件为 RTF/HTML/CSV,不支持 PDF;新版插件市场已无维护良好的 PDF 导出扩展。试图通过 Python Script 插件调用 reportlab 或 pdfkit 也可行,但需要你本地装 Python 和对应包,且每份文本需单独写渲染逻辑 —— 对普通用户,复杂度远超直接用 VS Code + 扩展或干脆用 Word 打开后另存为 PDF。
真正省事的临界点在于:如果只需保留基础格式(等宽字体、换行、无样式),用 notepad.exe 配合系统打印反而更稳;如果要加标题、页眉、语法高亮,则 Notepad++ 不是合适起点 —— 换用支持导出 PDF 的编辑器(如 Typora、Obsidian)或加个 Pandoc 流程更实际。


















