How can I operate printer with socket program only.
As I tried cups, IPP with php, and printer_open function in windows
but my concerns is not to depend on platform like Linux, window etc.
it should be platform independent.
Below is the code which is creating socket to printer.
Code is not optimized but it is successfully printing the text.
Only problem is that I am unable to check the printing job status.
<?php
$host = "printer_ip";
$port = 9100; //default listening port for printer
$message = "This text is going to print by printer";
// create socket
$socket = socket_create(AF_INET, SOCK_STREAM, 0);
if(!$socket){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
socket_close($socket);
die("Could not create socket: [$errorcode] $errormsg\n");
}
// connect to server
$result = socket_connect($socket, $host, $port);
if(!$result){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
socket_close($socket);
die("Could not connect to server: [$errorcode] $errormsg\n");
}
// send string to server
$socket_wrt = socket_write($socket, $message, strlen($message));
if(!$socket_wrt){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
socket_close($socket);
die("Could not send data to server: [$errorcode] $errormsg\n");
}
// get server response
$result = socket_read($socket, 1024);
if(!$result){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
socket_close($socket);
die("Could not read server response: [$errorcode] $errormsg\n");
}
echo "Reply From Server:".$result;
// close socket
socket_close($socket);
?>
EDIT:
This
$result = socket_read($socket, 1024);
is not giving any kind to data.
As printer is idle and no body is using except me, that's why on every request printer print
the data easily without any connection refuse.
while echo of socket_read response, the concatenated data "Reply from server" also does not print.
Any help will help me lot.
If you can switch from JetDirect (port 9100) to standard LPR, this approach can help you. http://www.phpclasses.org/package/2540-PHP-Abstraction-for-printing-documents.html
originally from: printing over network from PHP app