我需要建立一个简单的基于 Web 的打印机服务器,将打印文件到任何给定的打印机 IP地址
使用 lp 或 lpr 如何通过 IP地址将文件直接打印到网络打印机?注意:打印机不会在本地 CUPS 中设置,因为它需要能够打印到任何 IP地址。
我试过的:
lp -d 10.11.234.75 /path/to/file
lpr -P 10.11.234.75 /path/to/file
两者都给出:“打印机或类不存在。”
试试这个:
cat you_file.prn | netcat -w 1 printer_ip 9100
如果使用 bash 然后:
cat /path/to/file > /dev/tcp/10.11.234.75/9100
你想做的可能是不可行的。如果这些 IP地址两端的打印机只是随机打印机,那么你正在构建的服务器将需要知道使用哪个驱动程序才能打印到它们。如果你事先没有以任
式安装它们,那么它就不会工作。如果您只想与其他 Internet 打印协议 (IPP) 服务器交谈,那么它是可能的,尽管不一定优雅。我不知道除了 CUPS 之外的任何其他 IPP 客户端的 Linux 实现,并且 CUPS 要求您提前安装打印机。这可以非常容易地完成 (如here所解释的)。添加一个普通打印机是相同的代码 (但您需要知道哪个驱动程序才能使用它) 作为另一个 IPP。
以下是将 IPP 打印机添加到 CUPS 的代码:
lpadmin -E -p <printer-name> -v http://<ip_address>:631/<dir>/<printer> -L <location> -E
<printer-name>
和<location>
可以是您喜欢的任何东西,并且您需要到打印机的完整网络路径。
要添加普通打印机:
lpadmin -E -p <printer-name> -v <device-uri> -m <model> -L <location> -E
这是一样的,只是你需要给一个<model>
,这是打印机的驱动程序,如果你不想加密,就放弃第一个-E
。
如果以后要删除打印机,请使用以下命令:
lpadmin -x <printer-name>
我发现了一个名为 tcpsend.c 的旧程序,用于将文件发送到 IP地址的打印机。使用 gcc-o tcpsend tcpsend.c 构建
$ ./tcpsend
use: tcpsend [-t timeout] host port [files]
-t timeout - try connecting for timeout seconds
tcpsend.c source code
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(59条)