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');
分享題目:php數據調用打印機,php實現打印機打印
本文來源:http://m.kartarina.com/article12/hddegc.html
成都網站建設公司_創新互聯,為您提供網站內鏈、用戶體驗、微信小程序、做網站、移動網站建設、微信公眾號
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯