大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
16年我做过这种类似的,是做网络小票打印机,后台我也是用php实现;
我们拥有10余年网页设计和网站建设经验,从网站策划到网站制作,我们的网页设计师为您提供的解决方案。为企业提供做网站、成都网站制作、微信开发、小程序设计、成都做手机网站、H5响应式网站、等业务。无论您有什么样的网站设计或者设计方案要求,我们都将富于创造性的提供专业设计服务并满足您的需求。
问题的关键是该网络打印机是否有如下功能:
该网络打印机有配置服务器的功能(比如配置服务器的域名或者ip地址),意味着该网络打印机能通过网络去该地址访问,如果具备此功能,实现就很简单了,你只需在该服务器做个数据接口(用php可以),让该打印机去不停的访问即可(当然该网络打印机应该具备定时循环去访问地址的功能)
php 并不能使用打印机打印,只能 弄出数据 和 样式来进行打印
所用的打印功能 是 浏览器本身自带的
我使用的是ZJ-5870A小票打印机,要有一个web打印控件,推荐lodop,使用lodop进行打印预览,在弹出的预览界面选择那个小票打印机打印,主要是打印机和php无关,关键是使用lodop把php要显示的内容弄成可打印的页面。然后再连打印机即可
ESC使用\033表示,LF为\012,CR为\015
例如释放纸的ESC q使用下面的命令输出:
fputs($prn,"\033q");
fputs把内容发送给第一句,或者使用其它函数。
最后说明,上面的033、012、015是八进制
php生成的是网页吧,然后用ie浏览,在ie上有个打印按钮,可以选择打印机
但ie不是你用php写的,是微软写的
你怎么控制一个微软写的软件,并使用它选择打印机?除非他提供了接口
微软是否提供了接口,应该没有,否则早有人回帖了
但还有一个可能,当你改变本机 打印机的首选项时,有可能记录在注册表里面。如果是这样,那就直接改变注册表,就相当于选择了打印机
但是你想,当你浏览一个网页,它会修改你的注册表,这让人放不放心,算不算病毒,会不会被杀毒软件屏蔽?或者根本通不过ie默认的安全选项
最终结局就是,b/s方式不要想控制客户的硬件
但我还是要打印,在当前,只有让客户安装打印控件,这样才可能让客户自定义打印机相关
还有一种想法,不用客户端控制来打印,把打印要求提交到服务器,让服务器选择打印机,没有用过,你不如研究一下?
另外php最多只能控制服务器的硬件,想控制客户机最多只能用js
对客户机某些打印选项的注册表操作,下面有js的例子用法,很久以前的,仅做参考
script
var hkey_root,hkey_path,hkey_key
hkey_root="HKEY_CURRENT_USER"
hkey_path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\"
//设置网页打印的页眉页脚为空
function pagesetup_null(){
try{
var RegWsh = new ActiveXObject("WScript.Shell")
hkey_key="header"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"")
hkey_key="footer"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"")
hkey_key="margin_left"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"0.2")
hkey_key="margin_bottom"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"0.2")
hkey_key="margin_right"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"0.2")
hkey_key="margin_top"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"0.2")
}catch(e){}
}
//设置网页打印的页眉页脚为默认值
function pagesetup_default(){
try{
var RegWsh = new ActiveXObject("WScript.Shell")
hkey_key="header"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"wb页码,p/P")
hkey_key="footer"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"ubd")
}catch(e){}
}
/script
打印分页
p style="page-break-after:always"page1/p
p style="page-break-after:always"page2/p
你的打印是不是编程语言里面说的打印,例如basic语言的print语句,如果是的话,在PHP里面使用echo语句打印内容,例如:
echo 'table border=1trtd1td2/table';
如果你是希望程序运行后在打印机上打印输出内容,那可能比较复杂,而且不是PHP的强项,需要编写许多查找打印机的代码,简单的做法是把数据送我特殊设备,可以使用file_put_contents函数,例如:
file_put_contents('PRN:', 'print test');