使用php套接字编程操作打印机

2024-02-19

如何仅使用socket程序来操作打印机?
当我尝试cups、带有php的IPP和windows中的printer_open函数时
但我担心的是不依赖于 Linux、window 等平台。
它应该是平台独立的。

下面是创建打印机套接字的代码。

代码未优化,但已成功打印文本。
唯一的问题是我无法检查打印作业状态。

<?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);

不给数据任何形式。
由于打印机处于闲置状态,除了我之外没有人在使用,这就是为什么每次请求打印机都会打印
数据轻松传输,没有任何连接被拒绝。
当socket_read响应的回显时,连接的数据“Reply from server”也不会打印。
任何帮助都会对我有很大帮助。


如果您可以从 JetDirect(端口 9100)切换到标准 LPR,则此方法可以为您提供帮助。http://www.phpclasses.org/package/2540-PHP-Abstraction-for-printing-documents.html http://www.phpclasses.org/package/2540-PHP-Abstraction-for-printing-documents.html

最初是从:从 PHP 应用程序通过网络打印 https://stackoverflow.com/questions/5694144/printing-over-network-from-php-app

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用php套接字编程操作打印机 的相关文章

随机推荐