如何使用php将所有设备打印机名称连接到网络中的系统?我尝试了以下代码。
<?php
$getprt=printer_list(PRINTER_ENUM_LOCAL| PRINTER_ENUM_SHARED );
$printers = serialize($getprt);
$printers=unserialize($printers);
//print_r($printers);
echo '<select name="printers">';
foreach ($printers as $PrintDest)
echo "<option value=".$PrintDest["NAME"].">".explode(",",$PrintDest["DESCRIPTION"])[1]."</option>";
echo '</select>';
?>
我得到了一个致命错误:在第2行调用C:''examplep''htdocs''test''getprinter.php中未定义的函数printer_list()
您可以遵循本教程:
http://basic-programming-tips.blogspot.ch/2013/07/php-phpprinterdll-installation-and.html
转到Xammp主目录(例如C:''Xampp)
-
然后打开php文件夹
-
然后打开php.ini文件。
-
查找;extension=php_printer.dll
-
然后删除";"
-
完成
这将重新启动服务器,它应该可以工作。
PS:如果您没有php_printer.dll=>https://github.com/maryo/php-5.5-windows-extensions/tree/master/php_printer-0.1.0-dev-5.5-vc11-x86
我解决了我的问题。问题出在我的php_printer.dll上。一旦我复制了与php版本5.6.14兼容的php_prinder.dll的正确版本,就开始工作了。
php_printer.dll复制到ext文件夹中并编辑php.ini。
您可以使用exec()获取连接到系统的打印机列表。
if (PHP_OS_FAMILY === 'Windows') {
exec('wmic printer list brief', $printers_arr);
}else{
exec('lpstat -p', $printers_arr);
}
return $printers_arr;