在Centos中使用cups连接打印机

Linux下安装Cups可以连接各种打印机进行打印,笔者有遇到乱码的情况:
Printing to remote CUPS server from Windows prints “@PJL” code

尝试从linux下直接打印文件是正常的。判断问题出在从windows编码到linux解码再编码的过程中。

安装

# 安装软件
sudo apt install -y cups
# 查看状态
systemctl status cups
systemctl enable cups
# 启动服务
systemctl start cups
# 开启远程访问
sudo cupsctl --remote-any
# 重启服务
sudo systemctl restart cups

### 如果是树莓派 将用户pi设为管理员
sudo usermod -a -G lpadmin pi

安装驱动

sudo apt update
sudo apt install -y hplip

linux系统下直接打印测试

lp -d printer_name filename

笔者使用的是 hp136w 激光打印机,远程管理地址如下:

https://10.0.0.2:631/admin/

Add Printer

官方提供了驱动安装脚本(注意正确选择操作系统)

https://support.hp.com/cn-zh/drivers/hp-laser-mfp-130-printer-series/model/24494391?sku=4ZB86A

打印机地址如下:

http://10.0.0.2:631/printers/HP_Laser_MFP_131_133_135-138

Windows11下手动连接打印机,注意下图:

Windows下不需要安装打印驱动:
win-hp-136w.png

直接使用IPP驱动:
win-ipp-driver.png

说明:IPP代表Internet Printing Protocol(网络打印协议)是一种用于打印机和打印服务之间通信的标准协议。
Microsoft IPP Class Driver是指Microsoft开发的用于与IPP打印机进行通信的类驱动程序。

所以从Windows发送到Linux打印 解决乱码问题 必须从协议入手。
出现乱码现象:

-12345X@PJL COMMONT "USERNAME: Admin"
@PJL COMMONT USERNAME="Admin"
@PJL XCPT <xpif version="1.0" cpss-version="2.07" xml:lang="en-US">
@PJL XCPT     <job-template-attributes>
[...]
@PJL COMMENT DCPVer: DSPY 5.433.6.1
@PJL XCPT ENTER LANGUAGE=PCLXL
) HP-PCL XL;3.0;Comment Copyright © 2000-2015 Xerox Corporation. All Rights Reserved.
jX
...
@PJL ENTER LANGUAGE = QPDL

苹果手机 IOS 隔空打印

sudo apt install -y cups-client cups-filters cups-ipp-utils avahi-daemon printer-driver-gutenprint