HttpPrinter易橋網(wǎng)絡(luò)打印機(jī)
成都創(chuàng)新互聯(lián)長(zhǎng)期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為袁州企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),袁州網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
下載地址:
https://www.lanzous.com/b743805
一、概述:
常用的報(bào)表打印的方法包括:
1.使用activex打印 但是 只能用在IE中,然而微軟已經(jīng)放棄了IE,chrome一家獨(dú)大,新版的EDGE都用chrome開源內(nèi)核了.
2.生成pdf打印 但是 效率 和 打印效果有限制.你批量打印數(shù)據(jù)試試,不累死你,生成一個(gè)pdf,自己點(diǎn)擊打印一次.
3.用js 傳遞數(shù)據(jù) 給 報(bào)表服務(wù)器,可兼容各種瀏覽器.
4.安卓 IOS 自定打印機(jī)打印,或者用打印機(jī)接口打印.
這么多的打印,能不能統(tǒng)一起來. 這就是 我們現(xiàn)在用的 HttpPrinter,通過 Http通訊,打印機(jī)服務(wù)器端設(shè)置好模板格式,把數(shù)據(jù)發(fā)送給服務(wù)器即可.
二、特點(diǎn):
1、無插件,主要一句js即可;
2、拖拽即可完成設(shè)計(jì),感謝 銳浪報(bào)表的支持 ,國(guó)人的驕傲;
3、強(qiáng)大的報(bào)表功能,管它什么報(bào)表, 交叉的,嵌套的,還是二維碼,圖片等等,都支持.
4、打印機(jī):只要是能用的打印機(jī),都支持,針式打印機(jī)、激光打印機(jī)、小票打印機(jī),證卡打印機(jī)等等,都不在話下,而且當(dāng)有多個(gè)打印機(jī)時(shí)可以指定打印機(jī);
5、支持各種語言,java php js delphi python ios andriod 等等,提供Http通訊的語言都支持.
三、使用前提條件:
1、在進(jìn)行打印前,需要先設(shè)計(jì)好打印報(bào)表
2、打印數(shù)據(jù)必須Json的格式發(fā)送給打印服務(wù)器,并且數(shù)據(jù)必須滿足指定的格式(見下文);
四、數(shù)據(jù)格式說明:
下面以一個(gè) 報(bào)表數(shù)據(jù) 為例說明一下數(shù)據(jù)格式;
{
"ReportName": encodeURIComponent("test.grf"), /報(bào)表文件名/
"Copies": 1, /可選。打印份數(shù),支持指定打印份數(shù)。默認(rèn)1份,如果為零,不打印,只返回報(bào)表生成的pdf,jpg等文件/
"PrinterName": encodeURIComponent(""), /可選。指定打印機(jī),為空的話 使用默認(rèn)打印機(jī), 請(qǐng)?jiān)?控制面板 -> 設(shè)備和打印機(jī) 中查看您的打印機(jī)的名稱 /
"PrintOffsetX": 0, /可選。打印右偏移,單位厘米。報(bào)表的水平方向上的偏移量,向右為正,向左為負(fù)。/
"PrintOffsetY": 0, /可選。打印下偏移,單位厘米。 報(bào)表的垂直方向上的偏移量,向下為正,向上為負(fù)。/
"token": encodeURIComponent("aa"), /*可選。只要token值在列表中 方可打印
"Control": encodeURIComponent('[' ///*部件框,可選值:AsStaticBox ,AsMemoBox,AsRichTextBox,AsPictureBox (base64格式),AsBarcode*/
+'{"type": "AsStaticBox", "name": "姓名","value": "高文杰","required": false},'
+'{"type": "AsStaticBox", "name": "性別","value": "男","required": false},'
+'{"type": "AsStaticBox", "name": "電話","value": "13165191728","required": false},'
+'{"type": "AsBarcode", "name": "二維碼","value": "5520002701774727","required": false},'
+'{"type": "AsPictureBox", "name": "圖片","value": "/j9KKKKACiiigAooooA/9k=","required": false},' //base64格式
+']'),
"Parameter": encodeURIComponent('[' ///*參數(shù),type 默認(rèn)為空即可,已經(jīng)在報(bào)表端設(shè)置了 備用字段
+'{"type": "", "name": "單號(hào)","value": "5520002701774727","required": false},'
+'{"type": "", "name": "日期","value": "2019-09-09 12:21:12","required": false},'
+'{"type": "", "name": "year","value": "2018","required": false},'
+']'),
"Field": encodeURIComponent('[' ///*字段, type ftBlob (base64格式) ,ftString ftInteger ftBoolean, ftFloat, ftCurrency,ftDateTime, size (ftString 設(shè)置為實(shí)際長(zhǎng)度,其他的設(shè)置為0,例如 ftInteger ftBlob 等設(shè)置為0 )
+'{"type": "ftString", "name": "快遞單號(hào)","size": 255,"required": true},'
+'{"type": "ftString", "name": "發(fā)件人","size": 255,"required": false},'
+'{"type": "ftString", "name": "發(fā)件人電話","size": 255,"required": false},'
+'{"type": "ftBlob", "name": "圖像","size": 0,"required": false},'
+']'),
"Data": encodeURIComponent('[' ///*數(shù)據(jù)行
+'{"快遞單號(hào)": "1234567890", "發(fā)件人": "張三","發(fā)件人電話": "13100110000"},'
+'{"快遞單號(hào)": "1234567890", "發(fā)件人": "李四","發(fā)件人電話": "13100110001"},'
+'{"快遞單號(hào)": "1234567890", "發(fā)件人": "王五","發(fā)件人電話": "13100110002"},'
+'{"快遞單號(hào)": "1234567890", "發(fā)件人": "馬六","發(fā)件人電話": "13100110003"},'
+'{"快遞單號(hào)": "1234567890", "發(fā)件人": "趙七","發(fā)件人電話": "13100110004"},'
+'{"快遞單號(hào)": "1234567890", "發(fā)件人": "錢八","發(fā)件人電話": "13100110005"},'
+']'),
}
成功返回 {"status":"ok","data":"報(bào)表地址"}, 失敗返回 {"status":"error","data":"具體的錯(cuò)誤信息"}