2013-08-08 15 views
8

Mit printer_open() Funktion in PHP, ich bin in der Lage, die Zeichenfolge zu drucken, die ich in $content Variable gespeichert und in der Lage, aus einer Datei zu drucken.Printer_open() zum Drucken einer HTML-Ausgabe

$printer = "\\\\Pserver.php.net\\printername"; 
$handler = printer_open($printer); 
$content = "Test Content"; //string 
printer_write($handler, $content); 
printer_close($handler); 

Aber eine HTML-Ausgabe, die ich aus der Datenbank erzeugt und in der Webseite zeigt, ich auf die, die direkt zu drucken, müssen im gleichen Format, sobald die Seite geladen wird gedruckt, habe ich versucht, eine Menge, aber ich Ich weiß nicht, was ich tun soll, damit der Drucker direkt die gleiche HTML-Ausgabe druckt, sobald die Seite geladen wird. Verwenden Sie dazu die printer_open().

Was soll ich tun? Bitte legen nahe, eine bessere Methode als diese, wenn eine


AKTUALISIERT

Ich möchte nicht windows.print() -Methode von JavaScript verwenden, da es den Druckdialogfeld statt initiieren den Druckauftrag zeigt direkt an der Drucker

I Benutzer Form und Drucker einreichen treffen wollen den Empfang direkt zu drucken, ohne sie zu fragen etwas

+1

Möchten Sie vom Server oder vom Client drucken? Normalerweise hat der Server keinen Zugriff auf den gerenderten HTML-Code und Sie können PHP t nicht vom Client aus drucken, da PHP auf dem Server läuft. – RoToRa

+0

@ Rahul-TS könnten Sie Javascript window.print() -Funktion versuchen. http://www.w3schools.com/jsref/met_win_print.asp – xurca

+0

@RoToRa Ich benutze Client-Drucker –

Antwort

2

Sie können versuchen, Ausgabepuffer zu verwenden:

+0

funktioniert es auf der Clientseite !!! auch – Dipen

0

ein verstecktes Feld mit Autofokus erstellen (HTML5-fähiger Browser erforderlich) und den Ausdruck mit dem html onblur-Attribut (Ausgabe, wenn der Benutzer ein anderes Formularelement trifft) oder dem onfocus-Attribut auf einem bestimmten Formularelement (Schaltfläche) auslösen . Übersenden Sie das Formular nicht, da dies dazu führen würde, dass die Seite neu geladen wird.

0

Wie ich Ihre Frage verstehe, versuchen Sie HTML zu rendern und dann zu drucken. Wenn Sie es clientseitig rendern, müssen Sie es leider clientseitig drucken, wodurch der Druckdialog gestartet wird.

Sie könnte PhantomJS auf dem Server ausführen, um den HTML-Code zu rendern, speichern Sie einen Snapshot und drucken Sie das, aber das klingt wie massive Overkill, nur um eine Rechnung zu drucken.

Wahrscheinlich bessere Idee wäre, eine PDF zu generieren und diese zu drucken.

Verwandte Themen