升级Ubuntu 22.04.2 LTS后HP LaserJet 4050TN网络打印机打印额外报错页问题求助
这个问题在Ubuntu升级后针对老款HP PostScript打印机挺常见的,大概率是系统里的打印组件(比如CUPS或者Ghostscript)更新后,生成的PostScript代码和老打印机的兼容性出了问题——你看到的idiv是PostScript的整数除法命令,typecheck错误说明命令接收的参数类型不对,和打印机预期的不匹配。
给你几个亲测有效的解决方向,按顺序试试:
更换打印机的PPD驱动文件
老款打印机对新版PPD的兼容性往往不好,你可以打开CUPS管理页面(在浏览器里输入localhost:631),找到你的HP LaserJet 4050TN打印机,进入“修改打印机”界面,在驱动选择环节,不要用自动匹配的最新驱动,而是手动选择**HP LaserJet 4050 PostScript (recommended)**这个旧版驱动,或者甚至选通用的“PostScript Level 2”驱动,很多老机型用这个反而更稳定。调整CUPS的打印优化设置
进入打印机的“设置”界面,找到“高级”选项卡,尝试关闭“打印优化”相关的功能,或者把“分辨率”强制设置为打印机支持的数值(HP 4050TN最高支持1200dpi,不要选更高的);另外可以试试开启“发送原始PostScript”选项,让系统不额外转换PS代码,直接发送给打印机处理。降级Ghostscript组件
很多用户反馈是Ubuntu 22.04更新的Ghostscript版本(用于处理PostScript转换)和老打印机不兼容。你可以尝试降级到Ubuntu 20.04版本的Ghostscript,用命令行操作的话:# 先卸载当前版本 sudo apt remove ghostscript # 下载并安装旧版本(比如9.50,对应20.04的版本) wget http://archive.ubuntu.com/ubuntu/pool/main/g/ghostscript/ghostscript_9.50~dfsg-5ubuntu4.8_amd64.deb sudo dpkg -i ghostscript_9.50~dfsg-5ubuntu4.8_amd64.deb # 固定版本防止自动更新 sudo apt-mark hold ghostscript注意如果出现依赖问题,可以用
sudo apt -f install修复。测试不同类型的打印任务
先试试打印纯文本文件(比如新建一个txt文件,只打几行文字),如果纯文本不报错,那说明是复杂文档(比如PDF、带格式的文档)的PS转换出问题;如果纯文本也报错,那大概率是驱动或CUPS的核心设置问题。另外也可以直接用命令行打印PDF:lp -d 你的打印机名称 测试文件.pdf,绕开图形界面的转换环节,看是否正常。重置打印机缓存
有时候打印机本身的缓存可能残留了错误数据,你可以关掉打印机电源,拔掉电源线,等待10分钟左右再重新开机,清除缓存后再测试打印。
如果以上方法都不行,再考虑去HP官网查这款老打印机的支持信息,不过这款机型比较老旧,HP可能已经停止更新驱动了,所以优先从系统端调整解决。
备注:内容来源于stack exchange,提问作者Terry Gruenenfelder

