爱普生L3250系列通过docker支持Airprint打印

最近入手了一台爱普生的L3251彩色喷墨打印机,可以连WIFI实现网络共享,但有点遗憾的是机器原生并不支持苹果的Airprint协议,也就是无法通过iOS设备直接打印,但是官方提供了一款名为“Epson Smart Panel”的软件,在该软件中配置好打印机之后,可以直接通过该软件打印照片或文档等内容,也可以在相册中选择需要打印的图片,点击共享按钮,选择“使用epson打印”,系统可以直接跳到该软件,完成打印任务,如果你在共享中直接选择系统自带的打印服务,是发现不了打印机的。

20240225172222
虽然这样也可以完成手机端的打印操作,但始终没有类似于airprint那样的丝滑和简洁。下面我们来通过在docker中创建cups容器来让机器支持airprint协议。
首先说下我现在的设备情况及网络环境,打印机已经通过wifi接入到了家里的网络中,并且获取到了ip地址,另外我家里有一台斐讯N1,刷了F大的openwrt系统用作旁路由,并且系统内置了docker环境。
首先我们浏览器登录打印机获取到的IP地址,选择高级设置。
20240225171145
登录密码是我们的机器序列号,可以在机身上的标签中找到。
依次进入services-protocol,然后在右边找到ipp地址并复制出来备用。
20240225171309
由于N1是基于arm架构的主机,而非我们常用的x86,所以常规的cups容器是无法在N1上运行的,我们需要找到基于arm架构编译的cups容器。
运行下面的命令,拉取并运行容器:

1
2
3
4
5
6
7
8
9
10
docker run \
--name=cups \
--restart=always \
--net=host \
-v /var/run/dbus:/var/run/dbus \
-v ~/airprint_data/config:/config \
-v ~/airprint_data/services:/services \
-e CUPSADMIN='admin' \
-e CUPSPASSWORD='password' \
jysky007/cups:v1

确保该容器已正常运行,登录N1的ip地址加端口631,进入cups主页面。用户名密码为admin和password。
20240225170901
点击添加打印机。
20240225170940
选择ipp协议然后继续。
20240225171030
输入我们之前复制出来的ipp地址,打印机制造商选EPSON,型号选择如图所示的325,然后添加打印机。
20240225171628
添加完成之后我们切换到Prints页面,找到刚才添加的打印机,然后打印测试页试一下是否可以正常打印。
20240225171743
如果打印测试页正常之后,我们回到手机上点打印,然后就可以发现我们添加的打印机了,设置好打印参数之后,直接打印就可以了。