You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让面向页面的打印机强制打印部分页面?

如何让面向页面的打印机强制打印部分页面?

太懂你这种折腾老DOS程序遇到打印机卡缓冲的糟心了!从MS-DOS那会儿开始,激光机、DeskJet这类面向页面的打印机就有个“特性”——要么缓冲区攒满一页,要么收到换页/结束打印的控制命令,才肯把内容打出来。你碰到的短内容打不出来、长内容后半段卡着的情况,就是因为命令行直接重定向输出时,没给打印机发这个“赶紧打印”的信号。

你之前试的^L(ASCII换页符,对应ASCII码12)其实是对的,但大概率是发送方式不对!下面给你两种当年解决这类问题的经典靠谱办法:

方法一:制作一个“强制打印触发文件”

先做一个只包含换页符的小文件,之后每次需要强制打印时,把这个文件的内容发送给打印机就行:

  • 打开命令提示符,输入 copy con eop.txt 回车(eop是End Of Print的缩写,名字随便起)
  • 按住Ctrl+L(屏幕会清屏,这是正常的,我们是把这个控制符写入文件)
  • 按住Ctrl+Z后回车,完成文件创建(这个文件里就只有ASCII换页符)
  • 之后打印内容时,在后面追加发送这个文件:
    dir > LPT1: && type eop.txt > LPT1:
    
    注意把LPT1:换成你打印机实际用的端口(比如USB连接的话可能是USB001,去打印机属性的“端口”选项卡就能查到)

方法二:用系统自带的print命令替代直接重定向

Windows(包括XP)自带的print命令会自动在输出末尾添加换页符,完美解决缓冲问题:

  • 打印单个文件:
    print /d:你的打印机端口 yourfile.txt
    
  • 打印DOS程序的输出(用管道把程序输出传给print):
    你的老DOS程序.exe | print /d:你的打印机端口
    
    比如你要打印目录,就用 dir | print /d:LPT1:,这样不管内容长短,打印机都会立刻输出。

为啥之前的^L没用?大概率是你直接在echo ^L > LPT1:里输入的^L不是真正的ASCII换页符——命令行里直接按Ctrl+L是清屏操作,而不是输入这个字符,用copy con的方法才能准确把换页符写入文件里。

备注:内容来源于stack exchange,提问作者techineer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 08:58:02