Php获取连接到系统的所有打印机名称列表


Php to get all printer names-list connected to system

如何使用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)

  1. 然后打开php文件夹

  2. 然后打开php.ini文件。

  3. 查找;extension=php_printer.dll

  4. 然后删除";"

  5. 完成

这将重新启动服务器,它应该可以工作。

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;