uu
This commit is contained in:
parent
8aef4f8b04
commit
2b533e7614
@ -44,11 +44,10 @@ printerJobs.prototype.printArray = function(array) {
|
|||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
printerJobs.prototype.printQrcode = function(content, width) {
|
||||||
printerJobs.prototype.printQrcode = function(content) {
|
|
||||||
|
|
||||||
if (content) {
|
if (content) {
|
||||||
const cmds = [].concat([27, 97, 1], [29, 118, 48, 0, 30, 0, 240, 0], content, [27, 74, 3], [27, 64]);
|
const cmds = [].concat(...printerUtil.makeImageCode(content, width));
|
||||||
this._enqueue(cmds);
|
this._enqueue(cmds);
|
||||||
this._enqueue(commands.LF);
|
this._enqueue(commands.LF);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -82,10 +82,26 @@ function ab2hex(buffer) {
|
|||||||
return hexArr.join(',')
|
return hexArr.join(',')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 打印图片,需要根据图片宽度算出rate, rate = 图片宽度/imgRateSize
|
||||||
|
const imgRateSize = 8
|
||||||
|
|
||||||
|
// 默认240宽度 注意!! 图片宽度必须是8的倍数
|
||||||
|
const makeImageCode = (data, width = 240)=> {
|
||||||
|
//我的图片宽度是240,那么拼接的指令就是[29, 118, 48, 0, 30, 0, 240, 0]
|
||||||
|
//我的图片宽度是160,那么拼接的指令就是[29, 118, 48, 0, 20, 0, 160, 0]
|
||||||
|
//补充一点,打印非二维码的图片,宽度一定要是24的倍数,不然打印也会出现乱码
|
||||||
|
let rate = width / imgRateSize
|
||||||
|
|
||||||
|
return [
|
||||||
|
[27, 97, 1], [29, 118, 48, 0, 1*rate, 0, 8*rate, 0], data, [27, 74, 3], [27, 64]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
export {
|
export {
|
||||||
inline,
|
inline,
|
||||||
fillLine,
|
fillLine,
|
||||||
fillAround,
|
fillAround,
|
||||||
ab2hex,
|
ab2hex,
|
||||||
|
imgRateSize,
|
||||||
|
makeImageCode,
|
||||||
};
|
};
|
||||||
@ -1,3 +1,5 @@
|
|||||||
|
import { makeImageCode } from "./printerutil.js"
|
||||||
|
|
||||||
const formatTime = date => {
|
const formatTime = date => {
|
||||||
const year = date.getFullYear()
|
const year = date.getFullYear()
|
||||||
const month = date.getMonth() + 1
|
const month = date.getMonth() + 1
|
||||||
@ -46,10 +48,10 @@ function convert8to1(arr) {
|
|||||||
//我的图片宽度是240,那么拼接的指令就是[29, 118, 48, 0, 30, 0, 240, 0]
|
//我的图片宽度是240,那么拼接的指令就是[29, 118, 48, 0, 30, 0, 240, 0]
|
||||||
//我的图片宽度是160,那么拼接的指令就是[29, 118, 48, 0, 20, 0, 160, 0]
|
//我的图片宽度是160,那么拼接的指令就是[29, 118, 48, 0, 20, 0, 160, 0]
|
||||||
//补充一点,打印非二维码的图片,宽度一定要是24的倍数,不然打印也会出现乱码
|
//补充一点,打印非二维码的图片,宽度一定要是24的倍数,不然打印也会出现乱码
|
||||||
function toArrayBuffer(res) {
|
function toArrayBuffer(res, width) {
|
||||||
let arr = convert4to1(res.data);
|
let arr = convert4to1(res.data);
|
||||||
let data = convert8to1(arr);
|
let data = convert8to1(arr);
|
||||||
let cmds = [].concat([27, 97, 1], [29, 118, 48, 0, 30, 0, 240, 0], data, [27, 74, 3], [27, 64]);
|
let cmds = [].concat(...makeImageCode(data, width));
|
||||||
return new Uint8Array(cmds).buffer;
|
return new Uint8Array(cmds).buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,8 +20,8 @@ export default {
|
|||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
canvasId: 'shareCanvas',
|
canvasId: 'shareCanvas',
|
||||||
canvas_width: 240,
|
canvas_width: 480,
|
||||||
canvas_height: 240,
|
canvas_height: 480,
|
||||||
blueToothData: {
|
blueToothData: {
|
||||||
deviceId: '',
|
deviceId: '',
|
||||||
serviceId: '',
|
serviceId: '',
|
||||||
@ -51,7 +51,7 @@ export default {
|
|||||||
// .setBold(true)
|
// .setBold(true)
|
||||||
// .print(`叫那位非常漂亮的小姐姐送来,其他人送来拒收`)
|
// .print(`叫那位非常漂亮的小姐姐送来,其他人送来拒收`)
|
||||||
// .print(printerUtil.fillLine())
|
// .print(printerUtil.fillLine())
|
||||||
.printQrcode(pic_res)
|
.printQrcode(pic_res, this.canvas_width)
|
||||||
// .setSize(1, 1)
|
// .setSize(1, 1)
|
||||||
// .setBold(false)
|
// .setBold(false)
|
||||||
// .print(printerUtil.fillLine('*'))
|
// .print(printerUtil.fillLine('*'))
|
||||||
@ -157,7 +157,7 @@ export default {
|
|||||||
// 必须加延迟返回,防止高频率调用
|
// 必须加延迟返回,防止高频率调用
|
||||||
setTimeout(()=> {
|
setTimeout(()=> {
|
||||||
resolve()
|
resolve()
|
||||||
}, 5)
|
}, 10)
|
||||||
},
|
},
|
||||||
fail:(res)=> {
|
fail:(res)=> {
|
||||||
console.log('writeBLECharacteristicValue fail', res.errMsg)
|
console.log('writeBLECharacteristicValue fail', res.errMsg)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user