ホームページ  >  記事  >  バックエンド開発  >  PHPでクラウド印刷を実装する方法

PHPでクラウド印刷を実装する方法

*文
*文オリジナル
2018-01-02 14:46:424246ブラウズ

PHP を使用してクラウド印刷を実装するにはどうすればよいですか?この記事では主に PHP クラウド印刷クラスを紹介し、完全な例の形でネットワーク印刷データを実現するための PHP の収集、キューの並べ替え、データ印刷などの機能を分析します。一定の参考値があり、必要な友人が参照できます。それ。お役に立てれば幸いです。

詳細は次のとおりです:

プロジェクトには印刷機能を備えた数百台のコンピューターが必要です。当初はネットワーク プリンターを使用したいと考えていましたが、後でネットワーク プリンターがないことがわかったので、自分で印刷クラスを作成しました。

クラス実装の考え方は、まず印刷するすべてのデータを収集し、次に js を使用してウィンドウ印刷関数を呼び出すことです。現在IEで使用しています。

クラスは、印刷キュー機能を提供します。 (PS、端的に言うと、データを 1 つずつ読み取ることを意味します)

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"];
     }
   }
}

考え方は非常に単純で、データを収集して 1 つずつ処理します。 これにより、ネットワーク印刷の問題が解決されるだけでなく、ネットワーク印刷プロセスでのキューの問題も回避されます。関連する推奨事項:

javaScriptプリンターへの接続、印刷領収書の共有の印刷本物のIP

以上がPHPでクラウド印刷を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。