Frage

ich diesen Zebra ZM400 Drucker an das Netzwerk angeschlossen haben (192.168.1.50). Und ich versuche, einen Inhalt zu diesem Drucker direkt von PHP zu drücken.

Das ist die Idee, und ich bin einfach ohne jede Art und Weise stecken, dies zu tun. Ich versuchte, die file_put_contents('192.168.1.50', $content) aber ohne Erfolg.

würde schätzen, wenn jemand mir helfen, dies in Aussortieren bitte könnte. Danke: -)

............................................... .................................................. ................................

Lösung:

Ich druckte das LPR-Protokoll. Nr.notwendigkeitsfahrer oder irgendetwas zu installieren. Die LPR-Druck-Klasse für PHP 5 kann hier heruntergeladen werden:

http://www.phpclasses.org/ Paket / 2540-PHP-Abstraction-for-Druck-documents.html

War es hilfreich?

Lösung

Ich bin ziemlich sicher, dass nur Textinhalt über eine Buchse schieben wird nicht funktionieren überhaupt nicht.

Sie müssen lpr zum Drucken über meine Vermutung ist. Installieren Sie einen Druckserver wie CUPS und Sie können es, dass ...

mit schicken

Andere Tipps

Ich hatte ein ähnliches Problem, bei dem ich ein Java-Programm wurde mit ohne Druckertreiber auf einen Zebra-Drucker drucken, und wollte diese mit PHP erstellen. Es wurde nervt mich, dass ich die Antwort nicht finden konnte. Durch einige Paketerfassung mit Wireshark Vergleich der beiden, fühlte ich, dass es möglich war. Ich stolperte schließlich in die Lösung (zumindest für mich). Dies wird ein Etikett zu einem vernetzten Zebra Drucker direkt von einer PHP-Seite ohne die Notwendigkeit für einen Fahrer drucken.

<?php
error_reporting(E_ALL);

/* Get the port for the service. */
$port = "9100";

/* Get the IP address for the target host. */
$host = "172.17.144.89";

/* construct the label */
$mrn = "123456";
$registration_date = "03/13/2013";
$dob = "06/06/1976";
$gender = "M";
$nursing_station = "ED";
$room = "ED01";
$bed = "07";
$lastname = "Lastname";
$firstname = "Firstname";
$visit_id = "12345678";

$label = "q424\nN\n";
$label .= "A10,16,0,3,1,1,N,\"MR# " . $mrn . " ";
$label .= $registration_date . "\"\n";
$label .= "B10,43,0,3,2,4,50,N,\"" . $mrn . "\"\n";
$label .= "A235,63,0,3,1,1,N,\" ";
$label .= $dob . " ";
$label .= $gender . "\"\n";
$label .= "A265,85,0,3,1,1,N,\" ";
$label .= $nursing_station . " ";
$label .= $room . "-";
$label .= $bed . "\"\n";
$label .= "A10,108,0,3,1,1,N,\"";
$label .= $lastname . ",";
$label .= $firstname;
$label .= "\"\n";
$label .= "A10,135,0,3,1,1,N,\" #" . $visit_id . "\"\n";
$label .= "B10,162,0,3,2,4,50,N,\"" . $visit_id . "\"\n";
$label .= "P1\n";

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() failed: reason: " . socket_strerror(socket_last_error    ()) . "\n";
} else {
    echo "OK.\n";
}

echo "Attempting to connect to '$host' on port '$port'...";
$result = socket_connect($socket, $host, $port);
if ($result === false) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror    (socket_last_error($socket)) . "\n";
} else {
    echo "OK.\n";
}

socket_write($socket, $label, strlen($label));
socket_close($socket);

?>

Ich sehe, Sie haben Lösungen mit LPR und FTP bekommen, aber ich bin fast sicher, dass der Zebra-Drucker rohen ZPL Text auf Port 9100 akzeptieren.

Später? ...

Wenn Sie den Zugriff auf die serielle Schnittstelle haben:

LINUX:

 $fpi = fopen('/dev/ttyS0', 'r+');


$comando = "
N
Q70
A40,20,0,2,1,0,N,\"xxx\"
B40,40,0,1,2,6,100,N,\"$don\"
A40,145,0,3,1,0,N,\"N.- $don \"
A40,165,0,2,1,0,N,\"ccc\"
A0,198,7,1,1,0,N,\"$fecha\"
A19,198,7,1,1,0,N,\"fasdfas\"
P
";
fwrite($fpi, $comando);

fclose($fpi);


  • Diese Arbeit FINE

Ich habe eine Datei in Zebra Sprache erstellt und verwendet FTP die Datei viele Male in der Vergangenheit zu senden. nur speichern Sie die Datei und dann eine FTP-Verbindung an den Drucker erstellen dann verwenden Sie den Befehl put die TXT-Datei zu senden. der Drucker den Rest erledigen

Es gibt Beispielcode, wie ZPL senden direkt an Zebra-Drucker an:

https://km.zebra.com/kb/index? page = Inhalt & channel = SAMPLE_CODE & cat = ZISV_PL_ZPL

Ich habe jede nicht in PHP, aber es ist ein Beispiel über den Port 9100 mit VB direkt an den Drucker zu sprechen.

Dies ist, wie auf einem Zebra-Drucker mit dem Netzwerk verbunden drucken: Unter der Annahme, der Drucker ist an IP: 192.168.1.50 und Standard-Port: 9100

<?php 
if(($conn = fsockopen('192.168.1.50',9100,$errno,$errstr))===false){ 
    echo 'Connection Failed' . $errno . $errstr; 
} 

$data = ' 
    ^XA 
    ^FT50,200 
    ^A0N,200,200^FDTEST^FS 
    ^FT50,500 
    ^A0N,200,200^FDZebra Printer^FS 
    ^XZ'; 

#send request 
$fput = fputs($conn, $data, strlen($data)); 

#close the connection 
fclose($conn); 
?> 

Dies funktioniert 100% auf jedem ZPL-kompatiblen Drucker, nicht nur Zebra. In diesem Beispiel drucken wir ein Etikett mit einem großen TEST Zebra-Drucker in it

Werfen Sie einen Blick auf diese PHP Druckerfunktionen

Beachten Sie, dass

Diese Funktionen sind nur unter Windows 9.x verfügbar, ME, NT4 und 2000.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top