private function readPrinters() { $pipp = new \NethServer\Tool\PrintIPP(); $printers = array(); $ipp = new \CupsPrintIPP(); $ipp->setLog('/dev/null', 'file'); $ipp->setUserName('admin'); $ipp->getPrinters(); foreach ($ipp->available_printers as $uri) { $ipp->setPrinterURI($uri); $ipp->getPrinterAttributes(); $printers[basename($uri)] = array("enabled" => $ipp->printer_attributes->printer_is_accepting_jobs->_value0, "state" => $ipp->printer_attributes->printer_state->_value0); } return $printers; }
/** * Get printer detail * * @param string $uri URI * @return array List of attributes */ function get_printer_detail($uri) { global $conf, $db; include_once DOL_DOCUMENT_ROOT . '/includes/printipp/CupsPrintIPP.php'; $ipp = new CupsPrintIPP(); $ipp->setLog(DOL_DATA_ROOT . '/dolibarr_printipp.log', 'file', 3); // logging very verbose $ipp->setHost($this->host); $ipp->setPort($this->port); $ipp->setUserName($this->userid); if (!empty($this->user)) { $ipp->setAuthentication($this->user, $this->password); } $ipp->setPrinterURI($uri); $ipp->getPrinterAttributes(); return $ipp->printer_attributes; }
$ipp->setAttribute("printer-resolution", "1440x720dpi"); $ipp->setAttribute("job-billing", "Thomas"); $ipp->setAttribute("print-quality", "high"); $ipp->setAttribute("scaling", 100); //$ipp->setCopies(2); $ipp->setData('./photo.jpg'); $ipp->setJobName('photo.jpg', true); echo "Printing a large file: " . $ipp->PrintJob() . "<br />"; printf('$ipp->status[0] = %s <br /><br />', $ipp->status[0]); $ipp->unsetAttribute("job-billing"); $ipp->setJobName(); $ipp->setAttribute("scaling", ""); /* getting printer's attributes */ echo "<br /><br /><br />TEST 2<br />"; echo "OPERATION " . $j++ . "<br />"; echo "Getting Printer's attributes: " . $ipp->getPrinterAttributes() . "<br />"; printf('$ipp->status[%s] = %s <br /><br />', count($ipp->status) - 1, $ipp->status[count($ipp->status) - 1]); $timestamp = $ipp->printer_attributes->printer_up_time->_value0; echo "Printer up-time: " . date('Y-m-d H:i:s', $timestamp) . "<br />"; echo "Printer's attributes :<pre>\n"; print_r($ipp->printer_attributes); echo "</pre>"; /* printing a string */ echo "<br /><br /><br /> TEST 3<br />"; echo "OPERATION " . $j++ . "<br />"; $ipp->setCopies(2); $ipp->setJobName("PHP Test: Text String", true); // default is false: number is automagically appended $ipp->setData("This is a text string"); echo "Print String: " . $ipp->printJob() . "</br />"; echo "Job Attributes:<pre>\n";