Notepad++打印带行号文件需协同设置左侧页边距≥20mm、手动指定Courier New/Consolas等宽字体(字号9或10)、勾选Print in colour;页眉内容会挤占首行空间致第一页无行号,应清空Header改用Footer;Wrap long lines对打印无效,长行需缩放或横版。

Notepad++ 打印带行号的文本文件,关键不在“勾不勾选行号”,而在于 Margin、Header、Font 三者是否协同——缺一就会导致第一页没行号、缩进错乱、长行被截或全是黑白色。
打印前必须设对的三个参数:Margin、Font、Print in colour
Notepad++ 的行号是独立绘制层,它不随页眉浮动,也不自动避让内容区域。左侧边距太小,行号直接被裁掉;字体不是等宽,缩进全塌;没开彩色开关,高亮变黑白——这些都不是 Bug,是渲染机制决定的。
-
Left margin必须 ≥20mm(哪怕你只打一页),否则第一行行号大概率消失 - 务必取消勾选
Use default printer font,手动选Courier New或Consolas,字号用9或10 - 要保留语法色,必须在
Settings > Print中勾选Print in colour;但注意:部分打印机驱动(尤其老旧型号)会强制灰度,建议先用Microsoft Print to PDF测试是否真出彩
页眉/页脚填错字段,第一页行号就“失踪”
行号和页眉是两个互不感知的图层。如果你在 Header 字段里写了 &F(文件名)或 &D(日期),它会抢占顶部空间,把第一行代码(连同行号)整体往下推——结果就是第一页没行号,第二页才开始编号。
- 最稳做法:清空
Header字段(留空),所有标识信息统一塞进Footer,比如填&F &P - 若必须顶部显示文件名,改用
View > Show Symbol > Show Text in Header输入纯文本,它不参与页边距计算,不会挤占行号位置 - Top margin 建议设为
18mm起步,低于15mm容易遮挡首行代码
长代码行被截断?Wrap long lines 对打印完全无效
Wrap long lines 只影响屏幕显示,打印时它不起任何作用。所谓“折行”,其实是靠缩小字体或横版硬凑出来的视觉妥协。
- 真正可用的方案只有两个:
Scale设为85%~90%,或把纸张方向改成Landscape - 如果必须保持
Portrait且内容超宽,提前用TextFX > TextFX Edit > Reindent C++ code(或其他语言对应格式化)压缩空格、拆分过长字符串,比依赖打印设置更可靠 - 别信“自动换行”宣传,Notepad++ 打印引擎没有软换行逻辑
Linux(如 CentOS)上 Notepad++ 打印行号的现实约束
通过 Wine 运行 Windows 版 Notepad++ 是目前唯一能用原生打印界面的方式,但它受限于 Wine 的 GDI 渲染兼容性——行号可能偏移、颜色映射异常、甚至部分打印机选项不可见。
- Wine 下推荐用
Microsoft Print to PDF先生成 PDF 再转真机打印,比直连物理打印机稳定 - 若仅需行号+纯文本,
gedit或nano + lpr更轻量:例如lpr -o number-of-copies=1 -o page-ranges=1-10 文件名.txt可控性强,无字体/主题干扰 - 别在 Wine 环境里折腾
NppExport插件导 RTF——Wine 对 COM 接口支持弱,导出常失败或乱码
最容易被忽略的点是打印机驱动层的灰度开关,它能直接覆盖 Notepad++ 的 Print in colour 设置;另一个是 Top margin 和 Header 字段的叠加效应——两者都看不见,但合起来就能让第一页行号彻底消失。



















