从PHP中获取活动打印机列表

时间:2013-12-21 18:31:33

标签: php linux printing

我正在使用PHP获取连接到我的Xubuntu linux机器的活动打印机列表,然后创建一个只显示在线打印机的阵列。我想使用这个数组以编程方式确定哪个打印机可用于打印。

为了实现这一目标,我在PHP中调用

lpstat -p -d

这给出了回复:

printer DYMO-LabelWriter-400-Turbo-1 disabled since Fri 26 Jul 2013 10:45:50 AM UTC -
    Unable to send data to printer.
printer DYMO-LabelWriter-400-Turbo-2 is idle.  enabled since Mon 04 Nov 2013 04:30:57 AM UTC
printer Samsung-SCX-4200 is idle.  enabled since Wed 10 Jul 2013 11:30:49 AM UTC
system default destination: DYMO-LabelWriter-400-Turbo-1

但是,此列表不正确。在运行呼叫时,上述打印机均未实际连接。如果可以使用打印机,有没有办法探测?

编辑: 这是我使用的代码:

function getActivePrinters() {

    $o = shell_exec("lpstat -d -p");
    $res = explode("\n", $o);
    $i = 0;
    foreach ($res as $r) {
        $active = 0;
        if (strpos($r, "printer") !== FALSE) {
            $r = str_replace("printer ", "", $r);
            if (strpos($r, "is idle") !== FALSE)
                $active = 1;

            $r = explode(" ", $r);

            $printers[$i]['name'] = $r[0];
            $printers[$i]['active'] = $active;
            $i++;
        }
    }
    return $printers;
}

0 个答案:

没有答案