Windows 2012R2 RDP环境下Evince无法通过重定向打印机打印问题咨询
故障根因分析
该故障不属于系统打印服务层面的异常,仅出现在Evince与RDP重定向打印机的适配场景,核心原因分为三类:
- GTK打印栈兼容性问题:Evince是基于GTK框架开发的跨平台软件,Windows版本默认使用GTK内置打印栈处理打印任务,会先将PDF内容预渲染为自定义格式再发送给打印机,RDP重定向打印机的驱动多数仅兼容Windows原生GDI打印指令,收到不识别的打印格式后会直接丢弃任务,不会生成错误日志。
- 跨权限会话访问限制:RDP重定向打印机默认仅绑定当前登录用户的非提升权限会话,若Evince通过「管理员身份运行」启动,高权限进程无法访问普通用户会话下的重定向打印设备,就会出现任务提交后立即消失的情况。
- 打印参数不匹配:Evince默认传递的纸张尺寸、边距、色彩配置参数如果和本地客户端的打印机预设参数不兼容,打印机驱动会直接拒绝执行打印任务。
可行解决方案
按照优先级从高到低依次尝试:
- 优先排查权限适配:不要使用管理员权限启动Evince,直接双击以当前RDP会话的普通用户权限运行即可。若必须使用高权限运行Evince,打开本地组策略编辑器(运行
gpedit.msc),依次进入「计算机配置>管理模板>Windows组件>远程桌面服务>远程桌面会话主机>打印机重定向」,启用「不将打印机权限限制于系统管理员」策略后重启服务器生效。 - 调整Evince打印配置:打开Evince的设置界面,勾选「使用系统原生打印对话框」选项,关闭GTK内置的打印预渲染功能,打印时优先通过Windows系统打印栈传递指令。
- 替换通用打印驱动:在发起RDP连接的本地客户端,将需要重定向的打印机驱动替换为Microsoft通用打印驱动或者通用PCL/PS驱动,避免厂商专属定制驱动的兼容性问题。
- 兜底替代方案:若上述方案均无效,可先通过Evince将PDF导出为PNG/JPG格式后再打印,或者替换为Edge、福昕阅读器等Windows原生适配的PDF阅读器执行打印操作。
你之前执行的net stop spooler、DEL /F /S /Q %systemroot%\System32\spool\PRINTERS\*、net start spooler重置打印假脱机操作未生效,是因为故障和系统打印服务异常无关,不需要重复执行该操作。
内容的提问来源于stack exchange,提问作者emphyrio
相关产品推荐
相关产品推荐

