添加打印机

This commit is contained in:
魏啾
2024-05-14 14:18:49 +08:00
parent 7c568a8383
commit ea34ec97fc
6 changed files with 380 additions and 325 deletions

View File

@@ -50,6 +50,7 @@
import html2canvas from 'html2canvas';
// #endif
import uQRCode from '@/uni_modules/Sansnn-uQRCode/js_sdk/uqrcode/uqrcode.js'; // npm install uqrcodejs
import getLodop from '@/common/js/LodopFuncs.js'
export default {
data() {
return {
@@ -77,6 +78,55 @@
},
computed: {},
methods: {
print() {
var date = new Date();
var year = date.getFullYear(); //月份从0~11所以加一
let month = date.getMonth();
var dateArr = [
date.getMonth() + 1,
date.getDate(),
date.getHours(),
date.getMinutes(),
date.getSeconds(),
];
//如果格式是MM则需要此步骤如果是M格式则此循环注释掉
for (var i = 0; i < dateArr.length; i++) {
if (dateArr[i] >= 1 && dateArr[i] <= 9) {
dateArr[i] = "0" + dateArr[i];
}
}
var strDate =
year +
"-" +
dateArr[0] +
"-" +
dateArr[1] +
" " +
dateArr[2] +
":" +
dateArr[3] +
":" +
dateArr[4];
let LODOP = getLodop();
if (LODOP == null) {
alert('请先安装打印控件')
return;
}
LODOP.PRINT_INIT('')
// 设置打印纸大小
LODOP.SET_PRINT_PAGESIZE(1, 800, '300px', "");
// 二维码控制大小
LODOP.ADD_PRINT_BARCODE('', '30px', '150px', '150px', "QRCode", this.datares.url); //打印产品代码条码
LODOP.SET_PRINT_MODE("PRINT_PAGE_PERCENT", "Full-Width "); //设置打印风格,这里是等宽打印
LODOP.SET_PRINTER_INDEX("GP-58MB Series"); //设置默认打印机(这里用的是打印机名称)
// 文字内容
LODOP.ADD_PRINT_HTM('150px', '5px', "100%", "100%",
`<div style="width: 100%;font-size: 12px; ">销售方名称:${this.datares.title}</div><div style="width: 100%;font-size: 12px; margin-top:6px;">开票金额:${this.datares.price}</div><div style="width: 100%;font-size: 12px; margin-top:6px;">生成时间:${strDate}</div><div style="width: 100%;font-size: 12px; margin-top:6px;">${this.datares.string1}</div><div style="width: 100%;font-size: 14px; margin-top: 15px;">您可以使用微信,扫码开票</div>`
);
LODOP.SET_LICENSES("", "DCFF409304DFCEB3E2C644BF96CD0720", "", "");
// LODOP.PREVIEW(); //带预览的打印
LODOP.PRINT()
},
box_class() {
uni.navigateBack();
},
@@ -148,7 +198,6 @@
// 获取uQRCode实例
var qr = new uQRCode();
// 设置二维码内容
console.log(lane)
qr.data = this.datares.url;
// 设置二维码大小必须与canvas设置的宽高一致
qr.size = this.size;
@@ -160,6 +209,12 @@
qr.canvasContext = canvasContext;
// 调用绘制方法将二维码图案绘制到canvas上
qr.drawCanvas();
setTimeout(() => {
let info = uni.getSystemInfoSync();
if (info.deviceType == 'pc') {
this.print()
}
}, 1000)
},
requestlang() {
uni.request({