Versuchen Sie Folgendes:
cat you_file.prn | netcat -w 1 printer_ip 9100
Wenn Sie Bash verwenden, dann:
cat /path/to/file > /dev/tcp/10.11.234.75/9100
Was du vorhast, ist wahrscheinlich nicht machbar. Wenn die Drucker am Ende dieser IP-Adressen nur zufällige Drucker sind, muss der Server, den Sie erstellen, wissen, welcher Treiber verwendet werden muss, um auf ihnen drucken zu können. Wenn Sie sie vorher nicht installiert haben, wird es nicht funktionieren.
Wenn Sie nur mit anderen IPP-Servern (Internet Printing Protocol) kommunizieren möchten, ist dies möglich, wenn auch nicht unbedingt elegant. Ich kenne keine anderen Linux-Implementierungen eines IPP-Clients als CUPS, und CUPS erfordert, dass Sie Drucker im Voraus installieren. Dies kann jedoch sehr einfach durchgeführt werden (wie hier erklärt). Es ist derselbe Code zum Hinzufügen eines normalen Druckers (aber Sie müssen wissen, welcher Treiber verwendet werden soll) wie für einen IPP-Server. Alternativ können Sie möglicherweise eine andere IPP-Implementierung finden (oder eine schreiben - es sollte ziemlich einfach sein, nur ein Dokument zu senden), die keine Installation von Druckern erfordert.
Hier ist der Code, um einen IPP-Drucker zu CUPS hinzuzufügen:
lpadmin -E -p <printer-name> -v http://<ip_address>:631/<dir>/<printer> -L <location> -E
<printer-name>
und <location>
kann beliebig sein, und Sie benötigen den vollständigen Netzwerkpfad zum Drucker.
So fügen Sie einen normalen Drucker hinzu:
lpadmin -E -p <printer-name> -v <device-uri> -m <model> -L <location> -E
Dies ist dasselbe, außer dass Sie einen <model>
eingeben müssen , das ist der Treiber für den Drucker. Verschrotte die erste -E
wenn Sie keine Verschlüsselung wünschen.
Wenn Sie den Drucker danach löschen möchten, verwenden Sie dies:
lpadmin -x <printer-name>