接下來(lái)我們將使用printease實(shí)現(xiàn)前端js,uniapp打印。
此外,連接打印機(jī)的方式有很多種,這里并不會(huì)涉及到,該庫(kù)只是提供了一種打印機(jī)指令的生成方式,你可以將生成的指令發(fā)送到打印機(jī),打印機(jī)會(huì)執(zhí)行一次印刷過(guò)程。
這個(gè)教程是關(guān)于tspl指令的,如果你使用的其他指令,可以提出issue,我們會(huì)盡快更新。
文檔地址
參考文檔地址
下載
npm install printease
使用教程
使用下面命令打印一個(gè)內(nèi)容hello, printease!
打印文本
import printease from 'printease'
let tspl = new printease.tspl.TsplLib()
tspl.init()
tspl.setSize(60, 40)
tspl.setGap(0, 0)
tspl.setCls()
tspl.setText(50,50,'3',0,1,1,'Hello, Printease!')
tspl.setPrint(1)
console.log(tspl.getBuffer())
可以看到我們使用了``tspl.getBuffer()```來(lái)獲取一段緩沖區(qū)數(shù)據(jù),需要連接到打印機(jī),然后將緩沖區(qū)內(nèi)容發(fā)送到打印機(jī),打印機(jī)會(huì)執(zhí)行一次 印刷過(guò)程。
打印條碼
import printease from 'printease'
let tspl = new printease.tspl.TsplLib()
tspl.init()
tspl.setSize(60, 40)
tspl.setGap(0, 0)
tspl.setCls()
tspl.setBarCode(10, 10, '39', 100, 1, 0, 2, 4, '123456789')
tspl.setPrint(1)
console.log(tspl.getBuffer())
打印二維碼
import printease from 'printease'
let tspl = new printease.tspl.TsplLib()
tspl.init()
tspl.setSize(60, 40)
tspl.setGap(0, 0)
tspl.setCls()
tspl.setQRCode(10, 10, 'L', 5, 'A', 0, '123456789')
tspl.setPrint(1)
console.log(tspl.getBuffer())
打印圖片
import printease from 'printease'
let imageData = [0, 0, 0, 0, 0, 0, 7, 255, 3, 255, 17, 255, 24, 255, 28, 127, 30, 63, 31, 31, 31, 143, 31, 199, 31, 227, 31, 231, 31, 255, 31, 255]
let tspl = new printease.tspl.TsplLib()
tspl.init()
tspl.setSize(60, 40)
tspl.setGap(0, 0)
tspl.setCls()
tspl.setBitmap(200, 200, 16, 16, 0, imageData)
tspl.setPrint(1)
console.log(tspl.getBuffer())
如果你不想自己組織圖像數(shù)據(jù),可以使用``imagePixelInformation```進(jìn)行處理,如下所示:
import printease from 'printease'
import img from './test.png'
let ctx = new printease.imagePixelInformation.JavaScriptImagePixelInformation(100);
ctx.getImageData(img,200,300,(res)=>{
let tspl = new printease.tspl.TsplLib()
tspl.init()
tspl.setSize(60, 40)
tspl.setGap(0, 0)
tspl.setCls()
tspl.setBitmap(10, 10, res.width, res.height, 0, res.data)
tspl.setPrint(1)
console.log(tspl.getBuffer())
})
如果您使用uniapp,請(qǐng)使用UniappImagePixelInformation```的
uniGetImageData方法。 例如:
ctx.uniGetImageData(‘myCanvas’,‘./test.png’,200,300,(res)=>{})```
let ctx = new printease.imagePixelInformation.UniappImagePixelInformation(100);
ctx.uniGetImageData('myCanvas',img,200,300,()=>{
// ...
})
需要注意的是:由于uniapp的一些限制,您需要提前創(chuàng)建畫(huà)布。 另外,畫(huà)布的寬度和高度應(yīng)設(shè)置為大于要打印圖形的寬度和高度
設(shè)置編碼
編碼默認(rèn)是utf-8,如果產(chǎn)生中文亂碼,可以設(shè)置編碼為GB18030,當(dāng)然,也可以設(shè)置為其他編碼。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-649469.html
import printease from 'printease'
let tspl = new printease.tspl.TsplLib()
tspl.init()
tspl.setEncoding('GB18030')
tspl.setSize(60, 40)
tspl.setGap(3, 0)
tspl.setCls()
tspl.setText(10, 10, 'TSS24.BF2', 0, 1, 1, '世界你好')
tspl.setPrint(1)
console.log(tspl.getBuffer())
如果使用過(guò)程中遇到問(wèn)題,可以在github上提issue,或者加入q群。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-649469.html
到了這里,關(guān)于前端js,uniapp使用printease連接打印機(jī)打印,打印命令生成的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!