You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android的Termux中通过命令行打印至静态IP网络打印机?

Termux网络打印问题解决指南

1. 修复仅打印一行的问题

直接重定向到/dev/tcp只输出一行,是因为Termux的shell重定向在处理TCP流时存在缓冲或截断问题,换用nc(netcat)命令发送完整文件更可靠:

nc 你的打印机IP 9100 < 目标文件路径

⚠️ 注意:这种方法仅适用于纯文本,或者打印机原生能解析的格式(比如部分打印机支持直接打印PDF),否则仍会出现乱码。

2. 解决lp命令打印乱码问题

乱码本质是lp默认使用了打印机不支持的格式(比如PostScript),需要指定正确的输出模式:

  • 纯文本文件:强制用原始模式发送,避免格式转换
cat 目标文件路径 | lp -h 你的打印机IP:9100 -o raw -

-o raw参数会让lp不做任何格式转换,直接将内容传给打印机,适配纯文本或打印机原生支持的格式。

  • PDF文件:先转成打印机通用的PCL格式(需先安装ghostscript)
# 安装依赖工具
pkg install ghostscript
# 转换PDF为PCL并发送打印
gs -sDEVICE=pxlmono -dNOPAUSE -dBATCH -sOutputFile=- 目标PDF路径 | lp -h 你的打印机IP:9100 -o raw -

3. 绕开lpadmin的root权限限制

Termux默认禁止无root用户使用lpadmin,可以手动创建CUPS配置文件:

  1. 创建CUPS配置目录:
mkdir -p ~/.cups/
  1. 新建~/.cups/printers.conf文件,写入以下内容(替换为你的打印机信息):
<Printer MyPrinter>
Info 网络打印机
DeviceURI socket://你的打印机IP:9100
State Idle
Accepting Yes
Shared No
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
</Printer>
  1. 之后直接通过命名打印机打印:
lp -d MyPrinter -o raw 目标文件路径

测试建议

先使用简单纯文本测试打印机连通性,避免浪费纸张:

echo "测试打印" | nc 你的打印机IP 9100

确认打印机能正常输出后,再处理复杂文件。

内容的提问来源于stack exchange,提问作者swgeek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 22:17:18