Fred Furunkelstein 2012: Drucken per PHP?

Beitrag lesen

A) $dummy=system ('lpr datei.pdf') oder
B) $dummy=exec ('lpr datei.pdf') oder
C) $dummy=lpr datei.pdf

Okay, das gilt dann für den Sonderfall, dass der PHP-Server und die Drucker in demselben LAN sind.

Die Frage ist noch offen, wie man solche Drucker ansprechen könnte, die "nur" über das Internet erreichbar sind. Also Server in Frankfurt, Drucker in Mainz.

Dann wirst Du das CUPS auf dem Webserver so einrichten müssen, dass es den Drucker in der Firma kennt und das CUPS auf dem Druckserver in der Firma so, dass es diese Druckaufträge auch akzeptiert. Ferner die Firewalls so, dass diese den Datentransport erlauben.

Andere Möglichkeit:

Du überträgst eine Datei mit ssh zum Druckserver in der Firma.

system ('scp /tmp/5jh56 drucker@server.firma.de/home/drucker/printdir/' . date("Y-m-d_H:i:s.u") . '.pdf' ); echo $?

(gibt ein "0" zurück, wenn es funktioniert hat, 1 oder größer je nach Fehler)

Dort hockt ein Cronjob (sh-Skript), der aller Minuten nachschaut, ob Dateien in /home/drucker/printdir/ liegen und dann a) druckt und b) in einen anderen Ordner verschiebt. (Nicht löschen, falls der Druckjob daneben geht!). Sollte vielleicht auch ein Logfile schreiben, ggf. per ssh auf dem Webserver eine textdatei ablegen, die anzeigt, ob der Job wenigstens erfolgreich zum Drucker gesendet wurde.

Wenn Du ssh mit einer Schlüsseldatei betreibst ist das alles kein Problem. Nur sollte der Nutzer "drucker" eher unterprivilegiert sein.

Hehe, Du nennst Dich "Linuchs". Da müsstest Du das geradezu erfunden haben! Mir jedenfalls fallen dazu gleich eine ganze Reihe von Möglichkeiten ein, nur kenne ich die Grenzen des Dir technisch möglichen nicht.