Hi Alex,
exec ( 'echo "text" | netcat -C -D 192.168.123.40 9100');
du hast mir gleich noch mal geholfen ohne das ich weiter gefragt habe ;-)
die obige netcat lösung hab ich NUR unter php-cli zum laufen gebracht. Obwohl ich in der php.ini, die Einträge "disable_functions" beim Apache2 gelöscht habe, wollte er nicht drucken.
PHP müßte ungefähr so aussehen -- ungetestet, ohne Fehlerprüfungen, frei nach dem Beispiel 2 aus dem Manual:
$sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
socket_connect($sock,"drucker42.local.lan",9100);
$printjob="Hallo Welt!\nDieser Text fällt aus dem Drucker\n");
socket_write($sock,$printjob,strlen($printjob));
socket_close($sock);
>
ich wäre nicht auf die Idee gekommen, dem Drucker einfach nur Text auf den Port zu legen. Dachte immer das wäre ein Druckerspezifisches Kaudawelsch von Steuerbefehlen, bis der überhaupt was macht.
~~~php
// drucken
if(!($sock = socket_create(AF_INET, SOCK_STREAM, 0)))
{ fehler( socket_strerror(socket_last_error()) ) ; } // Fehler
if(!socket_connect($sock , '192.168.123.40' , 9100))
{ fehler( socket_strerror(socket_last_error()) ) ; } // Fehler
for ($i=0 ; $i< count($zeile); $i++) {
if( ! socket_send ( $sock , $zeile[$i] , strlen($zeile[$i]) , 0)) // schreiben
{ fehler( socket_strerror(socket_last_error()) ) ; } // Fehler
}
socket_close($sock);
Jetzt druckt er anstandslos - hiphip.. Dank dir :-).
Auch \n\r (Zeilenumbruch) kann er.
Kennst du noch eine Möglichkeit, Umlaute darzustellen 'äöü' ?
Viele Grüße aus LA
ralphi