源生php怎么打印,PHP云打印类完整示例

本文介绍了一个PHP实现的云打印类,旨在解决在无网络打印机环境下进行批量打印的需求。该类通过收集打印任务并用JavaScript调用打印函数来实现打印功能,并具备打印任务排队和状态管理功能,特别适用于IE浏览器。文章详细阐述了类的各个方法,如数据收集、处理、检查数据有效性以及打印任务的处理流程。
摘要由CSDN通过智能技术生成

本文实例讲述了PHP云打印类。分享给大家供大家参考,具体如下:

一个项目需求要几百台电脑都有打印功能,本来是想用网络打印机的,后来发现没有网络打印机,就自己动手写一个打印类算了。

类实现想法是:先把要打印的数据都收集起来,在用js调用window打印函数。目前就使用于IE。

类提供打印排队功能。(PS,说白了就是一条一条读取数据)

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

$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 "

window.print();

";

$id = $row["id"];

$sql = "update print set state=1 where id=".$id;

mysql_query($sql);

echo "打印处理完成";

}else

{

echo $row["content"];

}

}

}

思想很简单,收集数据再一个一个处理。 这样就不仅解决了网络打印的问题,还避免了网络打印打印过程排队的问题。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值