

点了打印,对话框关掉了,但打印机半天不出纸。
而同样这个文档,在另一台打印机上几乎是点完就出。
差在哪?
不是打印机新旧的问题,也不是网速问题。
根源在于:打印任务在到达打印机之前,经历了几道处理,而这几道处理的模式是可以切换的。
多数人以为"点打印"就是把文档发给打印机。
实际不是。
这中间有个组件叫打印后台处理程序(Print Spooler),它先接收任务,存成文件,然后再送出去。
关键在于"存成什么格式"。
Windows 提供了两条路径。
这条路是默认的。
应用程序先把文档输出成一种叫 EMF 的格式——全称是增强型图元文件。
EMF 记录的不是画面,是"绘制指令"。
比如"在坐标 (100, 200) 画一行宋体 12 号字",而不是"这几个像素是黑色的"。
这类文件存在一个固定目录里:
C:\Windows\System32\spool\PRINTERS
存进去之后,应用程序就可以"交差"了——打印对话框能关掉,你可以继续编辑文档。
真正的转换工作,由另一个组件在后台完成。
那个组件叫打印处理器(Print Processor)。
它的默认实现是一个叫 winprint.dll 的动态库。
它读取那份 EMF 文件,调用打印驱动,把绘制指令"渲染"成打印机认识的最终格式——通常是 PCL 或 PostScript 这类页面描述语言。
渲染完成,这份最终数据才被送到打印机。
好处很直接:应用程序能快速脱身。
文档页数越多、图片越复杂,渲染耗时越长。
如果让应用程序自己去做,那你点了打印之后就得一直等着,什么都干不了。
交给后台,体验就顺畅了。
代价是:需要两次转换。
第一次是应用转 EMF,第二次是 EMF 转打印机语言。
如果文档里有大量高分辨率图片、嵌入字体、复杂矢量图形,那个 EMF 临时文件可能大到几百 MB。
渲染它需要占用 CPU 和内存。
在配置一般的电脑上,这个过程可能要好几十秒。
你观察到的是"打印机没反应",实际瓶颈在电脑这边,不在打印机。
另一条路是跳过 EMF 这一步。
应用程序直接通过驱动,把文档转成打印机语言,然后交给后台处理程序。
这时候数据格式标记为 RAW——意思是"原始数据,不需要再加工"。
后台处理程序拿到什么就发什么,不做转换。
这个模式通常对应设置里的一个选项:「直接打印到打印机」。
代价是应用程序不能立刻脱身。
因为转换工作是在它的进程里做的,没交给后台。
所以你点了打印之后,那个软件可能一直显示"正在打印",关不掉,也没法继续操作。
文档越复杂,这个等待越久。
一个典型场景是:网络打印时出现乱码。
乱码的成因通常出在"EMF 转打印机语言"这一步——如果客户端生成的 EMF 和服务端驱动的预期对不上,转换就会出错。
结果打印机收到一堆它不认识的字节,就当成文本打印出来了。
这时候把处理器切成 RAW,等于跳过了那个出错的环节,直接发原始指令。
很多"网络打印机乱码"的问题,就是这么解决的。
这也是打印机修复工具在重置配置时会一并恢复的一项——因为它属于打印子系统的基础参数。
注意最后一行——这两种"快"和"慢"是不同位置的现象。
EMF 模式是"软件界面响应快,但打印机出纸可能晚"。
RAW 模式是"软件界面卡着,但数据一旦发出,打印机响应更直接"。
路径在打印机的属性里,不在"属性"而在"打印机属性"——两个是不同的对话框。
顺序是:
控制面板 → 设备和打印机 → 右键打印机 → 打印机属性 → 高级 选项卡 → 打印处理器 按钮
弹出来的窗口里有两个字段:
切换这个数据类型,就是在两条路径之间选择。
另外,同一个高级选项卡里可能还有一个选项叫「直接打印到打印机」,勾上它也是走 RAW 那条路。
同一个选项卡里还有其他几个设置,值得一起看。
勾选后,打印完的作业不会从队列里删除。
好处是:同一份文档要再打一份时,直接从队列重发,不用重新渲染。
代价是:队列会越积越多,占硬盘空间。
这一项决定后台处理程序是"全部渲染完再发"还是"边渲染边发"。
勾选的话,打印机开始出纸的时间会晚一些——因为它要等整个作业准备好。
但好处是:不会出现"打到一半卡住"的情况,因为数据已经全部就绪了。
不勾选的话,出纸更快,但如果中途渲染出错,可能打到一半停住。
不是所有"打印慢"都该去改这里。
先做一次简单的判断。
如果现象是「软件很快就响应了,但打印机迟迟不出纸」——那瓶颈在后台渲染。
这时候可以考虑:
如果现象是「点打印后软件卡住不动」——那说明已经在用 RAW 了,转换压力在应用进程里。
这时候要解决的是文档复杂度或电脑性能问题,不是改设置。
如果现象是「打印机本身收到数据了,但出纸慢」——那和这两条路径都无关,问题在打印机的处理能力、内存容量或者网络传输上。
区分清楚这三类,才不会在错误的地方调参数。
把上面这些串起来,打印机修复工具的作用范围就明确了一部分。
它处理的主要是配置层面的异常:
注意最后两行。
渲染慢很多时候是文档和硬件的问题,不是配置坏了。
这时候重装多少次驱动都不会变快——该做的是简化文档、升级设备,或者换一条打印路径。
而队列卡死、驱动损坏这类,才是配置层的问题——重置一遍就能恢复。
分清楚这两类,才知道该不该用打印机修复工具动手处理。
同一个文档在不同打印机上表现不同,很多时候是因为走的是两条不同的处理路径。
EMF 是先存绘制指令、再后台渲染,换来的是应用响应快,代价是渲染可能耗时。
RAW 是应用直接生成最终格式,换来的是跳过一道转换,代价是应用要一直等着。
而"直接打印到打印机"这个选项,就是把前者切换到后者的开关。
理解了这两条路径,很多"打印慢"和"打印乱码"的问题,就知道该往哪个方向查了——也就知道哪些情况适合用打印机修复工具处理,哪些情况它帮不上忙。
安装包地址:
https://www.ijinshan.com/functions/repairprinter.html?channel=4010
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。