Maison > développement back-end > tutoriel php > Comment implémenter l'impression cloud avec PHP

Comment implémenter l'impression cloud avec PHP

*文
Libérer: 2023-03-18 22:22:01
original
4338 Les gens l'ont consulté

Comment PHP implémente-t-il l'impression dans le cloud ? Cet article présente principalement la classe d'impression cloud PHP et analyse la collecte, le tri des files d'attente, l'impression des données et d'autres fonctions de PHP pour réaliser l'impression des données en réseau sous la forme d'un exemple complet. Il a une certaine valeur de référence et les amis dans le besoin peuvent s'y référer. il. J'espère que cela aide tout le monde.

Les détails sont les suivants :

Un projet nécessite des centaines d'ordinateurs dotés de fonctions d'impression. Au départ, je voulais utiliser une imprimante réseau, mais j'ai découvert plus tard qu'il n'y avait pas d'imprimante réseau, donc. J'ai écrit moi-même un programme d'impression. L'idée de l'implémentation de la classe

est la suivante : collectez d'abord toutes les données à imprimer, puis utilisez js pour appeler la fonction d'impression de fenêtre. Actuellement utilisé dans IE. La classe

fournit une fonctionnalité de mise en file d'attente d'impression. (PS, pour parler franchement, cela signifie lire les données une par une)

class Wprint{
   //收集打印代码
   private $data = array();
   //处理打印代码
   private $handle;
   public function __construct()
  {
    header("Content-type:text/html;charsetutf-8");
    $this->link(); //链接数据库
    $this->collect($_POST["username"],$_POST["content"],$_POST["ip"]);
    $this->handle();
   }
   //链接数据库
   private function link()
   {
    $link = mysql_connect('localhost', 'root', '123456');
    mysql_select_db('shen', $link);
    mysql_query('SET NAMES utf8');
   }
   //收集打印代码
   private function collect($username,$content,$ip)
   {
     $code["username"] = $username;
     $code["content"] = $this->check($content);
     $code["ip"] = $ip;
     $code["state"] = 0;
     $code["priority"] = 0;
     array_push($this->data,$code);//数据节点入栈
   }
   //处理打印代码入库
   private function handle()
   {
    foreach($this->data as $value)
    {
$sql = "insert into print(username,content,ip,state,priority)
values('{$value["username"]}','{$value["content"]}',
'{$value["ip"]}','{$value["state"]}','{$value["priority"]}')";
     $query = mysql_query($sql);
     if($query)
     {
      $id = mysql_insert_id(); //获取最近insert操作得到的ID
      echo "数据收集成功,正在排队打印,排队ID为".$id;
      $this->num($id);
     }
     else
     {
      echo "数据收集失败,请3秒后再一次提交";
     }
    }
   }
    //检查传人数据是否为空
   private function check($string)
   {
    if(strlen($string) == 0 || $string == " ")
    {
     echo "数据收集失败,打印内容为空";
     exit;
    }else
    {
     return $string;
    }
   }
   //获取打印排队人数
   private function num($id)
   {
    $sql = "select id from print where state=0 and id<".$id." order by id asc";
    $query = mysql_query($sql);
    $num = mysql_num_rows($query);
    echo ",您前面还有".$num."个人在排队";
   }
   //打印数据
   public function Yprint()
   {
     $sql = "select id,content from print where state=0 order by id asc limit 1";
     $query = mysql_query($sql);
     $row = mysql_fetch_array($query);
     if(!empty($row["content"]))
     {
      echo "<script tyle=\"text/javascript\">
            window.print();
        </script>";
      $id = $row["id"];
      $sql = "update print set state=1 where id=".$id;
      mysql_query($sql);
      echo "打印处理完成";
     }else
     {
       echo $row["content"];
     }
   }
}
Copier après la connexion

L'idée est très simple, collecter les données et les traiter une par une. Cela résout non seulement le problème de l'impression réseau, mais évite également le problème de file d'attente dans le processus d'impression réseau.

Recommandations associées :

Connexion javascript à l'imprimante, partage d'exemples de reçus d'impression

File d'attente des messages de file d'attente PHP file d'attente PHP traitement de la file d'attente PHP de haut niveau

Comment PHP obtient-il la véritable adresse IP du client utilisateur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal