printer_open() Problem

baeckerjunge

Erfahrenes Mitglied
Hallo zusammen,

Hat jemand von euch Erfahrung mit Printer Extension ?

Ich soll im Auftrag ein Formular erstellen, welches die getätigten Eingaben nach Absenden innerhalb des Intranets an den Netzwerkdrucker des Sysadmins schickt.

Als Einstieg habe ich folgendes Sample rausgesucht und local getestet.
Es läuft sich jedoch zu Tode... Weiss jemand Rat ?

PHP:
<?php
$handle = printer_open("HP Lasejet 1018");
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 148, 76, PRINTER_FW_MEDIUM, false, false, false, -50);
printer_select_font($handle, $font);
printer_draw_text($handle, "PHP is simply cool", 40, 40);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>
 
Also du überschreibst den Ressourcen-Handle gleich am Anfang wieder mit einer leeren Ressource:

PHP:
$handle = printer_open("HP Lasejet 1018");
$handle = printer_open();

müsste wohl eher nur dies sein:

PHP:
$handle = printer_open("HP Lasejet 1018");

Das Beispiel auf php.net ist da irreführend. Ausserdem solltest du den Netzwerkname (Backslash escapen!) verwenden:

PHP:
$handle = printer_open("\\\\MyNetwork\\HPLasejet1018");

halt an dein Netzwerk anpassen.

Mit error_reporting(E_ALL); sollte eigentlich mehr als nur ein TimeOut kommen. Sonst halt die Variablen mit var_dump(); und print_r(); an verschiedenen Stellen debugen.


Edit: Achso, ohne Parameter versucht printer_open() zum Standard-Drucker zu verbinden, php.ini Einstellung von printer.default_printer? PHP "versucht" sonst dies selbst zu detecten. Ausserdem ist dies eine WINDOWS only funktion - nur zur Sicherheit...
 
Zuletzt bearbeitet:
Dein Tipps haben den Knoten gelöst! Danke für den Anstoss - den rest bekomme ich hin...

Hier nochmal mein jetztiges Ergebnis:
PHP:
<?php
error_reporting(E_ALL);
$handle = printer_open("\\\\Welt\\HP Laserjet 1018");
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 148, 76, PRINTER_FW_MEDIUM, false, false, false, 0);
printer_select_font($handle, $font);
printer_draw_text($handle, "Das ist ein Test !", 140, 40);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>
 
Zurück