. * or see http://www.gnu.org/ */ /** * \file htdocs/core/class/dolprintipp.class.php * \brief A set of functions for using printIPP */ /** * Class to manage printIPP */ class dolprintIPP { var $host; var $port; var $userid; var $user; var $password; var $error; var $db; /** * Constructor * * @param DoliDB $db database * @param string $host host of Cups * @param string $port port * @param string $userid userid * @param string $user user * @param string $password password * @return printIPP */ function __construct($db,$host,$port,$userid,$user,$password) { $this->db=$db; $this->host=$host; $this->port=$port; $this->userid=$userid; $this->user=$user; $this->password=$password; } /** * Return list of available printers * * @return array list of printers */ function getlist_available_printers() { global $conf,$db; include_once DOL_DOCUMENT_ROOT.'/includes/printipp/CupsPrintIPP.php'; $ipp = new CupsPrintIPP(); $ipp->setLog(DOL_DATA_ROOT.'/printipp.log','file',3); // logging very verbose $ipp->setHost($this->host); $ipp->setPort($this->port); $ipp->setUserName($this->userid); //$ipp->setAuthentication($this->user,$this->password); $ipp->getPrinters(); return $ipp->available_printers; } /** * Print selected file * * @param string $file file * @param string $module module * * @return void */ function print_file($file,$module) { global $conf,$db; include_once DOL_DOCUMENT_ROOT.'/includes/printipp/CupsPrintIPP.php'; $ipp = new CupsPrintIPP(); $ipp->setLog(DOL_DATA_ROOT.'/printipp.log','file',3); // logging very verbose $ipp->setHost($this->host); $ipp->setPort($this->port); $ipp->setJobName($file,true); $ipp->setUserName($this->userid); //$ipp->setAuthentication($this->user,$this->password); // select printer uri for module order, propal,... $sql = 'SELECT rowid,printer_uri,copy FROM '.MAIN_DB_PREFIX.'printer_ipp WHERE module="'.$module.'"'; $result = $this->db->query($sql); if ($result) { $obj = $this->db->fetch_object($result); if ($obj) { $ipp->setPrinterURI($obj->printer_uri); } else { $ipp->setPrinterURI($conf->global->PRINTIPP_URI_DEFAULT); } } $ipp->setCopies($obj->copy); $ipp->setData(DOL_DATA_ROOT.'/'.$module.'/'.$file); $ipp->printJob(); } /** * List jobs print * * @param string $module module * * @return void */ function list_jobs($module) { global $conf,$db; include_once DOL_DOCUMENT_ROOT.'/includes/printipp/CupsPrintIPP.php'; $ipp = new CupsPrintIPP(); $ipp->setLog(DOL_DATA_ROOT.'/printipp.log','file',3); // logging very verbose $ipp->setHost($this->host); $ipp->setPort($this->port); $ipp->setUserName($this->userid); // select printer uri for module order, propal,... $sql = 'SELECT rowid,printer_uri,printer_name FROM '.MAIN_DB_PREFIX.'printer_ipp WHERE module="'.$module.'"'; $result = $this->db->query($sql); if ($result) { $obj = $this->db->fetch_object($result); if ($obj) { $ipp->setPrinterURI($obj->printer_uri); } else { // All printers $ipp->setPrinterURI("ipp://localhost:631/printers/"); } } echo 'Jobs for : '.$this->userid.' module : '.$module.' Printer : '.$obj->printer_name.'
'; echo "Getting Jobs: ".$ipp->getJobs(true,3,"completed",true)."
"; echo "
";print_r($ipp->jobs_attributes); echo "
"; } } ?>