Browse Source

2026-02-03

打印优化
master
fengyuan_yang 8 months ago
parent
commit
b3fb8fceea
  1. 26
      src/mixins/labelPrintTemplates.js
  2. 58
      src/views/modules/boxManage/com_saleBoxManage_boxing.vue

26
src/mixins/labelPrintTemplates.js

@ -83,7 +83,7 @@ export default {
const fontSize = 6; // 字体大小
// 编码(第1行)
const label1 = LODOP.ADD_PRINT_TEXT('3.5mm', labelX, labelWidth, '3mm', '编码:');
const label1 = LODOP.ADD_PRINT_TEXT('3.5mm', labelX, labelWidth, '3mm', 'No');
LODOP.SET_PRINT_STYLEA(label1, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(label1, "FontSize", fontSize);
@ -93,7 +93,7 @@ export default {
LODOP.SET_PRINT_STYLEA(value1, "Bold", 1);
// 型号(第2行)
const label2 = LODOP.ADD_PRINT_TEXT('7.5mm', labelX, labelWidth, '3mm', '型号:');
const label2 = LODOP.ADD_PRINT_TEXT('7.5mm', labelX, labelWidth, '3mm', 'Type');
LODOP.SET_PRINT_STYLEA(label2, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(label2, "FontSize", fontSize);
@ -102,7 +102,7 @@ export default {
LODOP.SET_PRINT_STYLEA(value2, "FontSize", fontSize);
// 数量(第3行)
const label3 = LODOP.ADD_PRINT_TEXT('11.5mm', labelX, labelWidth, '3mm', '数量:');
const label3 = LODOP.ADD_PRINT_TEXT('11.5mm', labelX, labelWidth, '3mm', 'Qty');
LODOP.SET_PRINT_STYLEA(label3, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(label3, "FontSize", fontSize);
@ -111,7 +111,7 @@ export default {
LODOP.SET_PRINT_STYLEA(value3, "FontSize", fontSize);
// 批号(第4行)
const label4 = LODOP.ADD_PRINT_TEXT('15.5mm', labelX, labelWidth, '3mm', '批号:');
const label4 = LODOP.ADD_PRINT_TEXT('15.5mm', labelX, labelWidth, '3mm', 'Lot No');
LODOP.SET_PRINT_STYLEA(label4, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(label4, "FontSize", fontSize);
@ -170,35 +170,35 @@ export default {
const fontSize = 4; // 字体大小(从7号改为4号)
// 第1行:编码
const text1 = LODOP.ADD_PRINT_TEXT('3mm', startX, textWidth, '3mm', `编码:${printData.partNo || ''}`);
const text1 = LODOP.ADD_PRINT_TEXT('3mm', startX, textWidth, '3mm', `No:${printData.partNo || ''}`);
LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text1, "FontSize", fontSize);
// 第2行:卷号
const text2 = LODOP.ADD_PRINT_TEXT('6.5mm', startX, textWidth, '3mm', `卷号:${printData.rollNo || ''}`);
const text2 = LODOP.ADD_PRINT_TEXT('6.5mm', startX, textWidth, '3mm', `Roll No:${printData.rollNo || ''}`);
LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text2, "FontSize", fontSize);
// 第3行:良品 + 不良品(左右分布)
// 良品(左侧)
const text3 = LODOP.ADD_PRINT_TEXT('10mm', startX, '24mm', '3mm', `良品:${printData.goodQuantity || ''}`);
const text3 = LODOP.ADD_PRINT_TEXT('10mm', startX, '24mm', '3mm', `Good Qty:${printData.goodQuantity || ''}`);
LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text3, "FontSize", fontSize);
// 不良品(右侧)
const text4 = LODOP.ADD_PRINT_TEXT('10mm', '44mm', '24mm', '3mm', `不良品:${printData.badQuantity || ''}`);
const text4 = LODOP.ADD_PRINT_TEXT('10mm', '44mm', '24mm', '3mm', `Bad Qty:${printData.badQuantity || ''}`);
LODOP.SET_PRINT_STYLEA(text4, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text4, "FontSize", fontSize);
// 第4行:总数 + 良率(左右分布)
// 总数(左侧)
const text5 = LODOP.ADD_PRINT_TEXT('13.5mm', startX, '24mm', '3mm', `总数:${printData.quantity || ''}`);
const text5 = LODOP.ADD_PRINT_TEXT('13.5mm', startX, '24mm', '3mm', `Total Qty:${printData.quantity || ''}`);
LODOP.SET_PRINT_STYLEA(text5, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text5, "FontSize", fontSize);
// 良率(右侧)
const yieldValue = printData['yield'] || printData.yield || '';
const yieldText = yieldValue ? `良率: ${yieldValue}%` : '良率:';
const yieldText = yieldValue ? `Yield: ${yieldValue}%` : 'Yield:';
const text6 = LODOP.ADD_PRINT_TEXT('13.5mm', '44mm', '24mm', '3mm', yieldText);
LODOP.SET_PRINT_STYLEA(text6, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text6, "FontSize", fontSize);
@ -304,17 +304,17 @@ export default {
const fontSize = 5; // 字体大小(比A002稍大,因为只有3行)
// 第1行:编码
const text1 = LODOP.ADD_PRINT_TEXT('3.5mm', startX, textWidth, '4mm', `编码:${printData.partNo || ''}`);
const text1 = LODOP.ADD_PRINT_TEXT('3.5mm', startX, textWidth, '4mm', `No:${printData.partNo || ''}`);
LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text1, "FontSize", fontSize);
// 第2行:卷号
const text2 = LODOP.ADD_PRINT_TEXT('8mm', startX, textWidth, '4mm', `卷号:${printData.rollNo || ''}`);
const text2 = LODOP.ADD_PRINT_TEXT('8mm', startX, textWidth, '4mm', `Roll No:${printData.rollNo || ''}`);
LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text2, "FontSize", fontSize);
// 第3行:良品
const text3 = LODOP.ADD_PRINT_TEXT('12.5mm', startX, textWidth, '4mm', `良品:${printData.goodQuantity || ''}`);
const text3 = LODOP.ADD_PRINT_TEXT('12.5mm', startX, textWidth, '4mm', `Good Qty:${printData.goodQuantity || ''}`);
LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text3, "FontSize", fontSize);
}

58
src/views/modules/boxManage/com_saleBoxManage_boxing.vue

@ -544,7 +544,7 @@ export default {
handleSelectionChange(val) {
this.selectedBoxes = val
},
// 打印外箱标签
// 打印外箱标签 - 纸张尺寸:70mm x 20mm
async printCartonLabels() {
if (this.selectedBoxes.length === 0) {
this.$message.warning('请选择要打印的外箱!')
@ -561,8 +561,8 @@ export default {
// 初始化打印
LODOP.PRINT_INIT('外箱标签打印')
// 设置纸张尺寸:70mm x 30mm
LODOP.SET_PRINT_PAGESIZE(0, 700, 300, '')
// 纸张尺寸设置:宽度=700(70mm), 高度=200(20mm)
LODOP.SET_PRINT_PAGESIZE(0, 700, 200, '')
// 循环打印每个选中的外箱
for (let i = 0; i < this.selectedBoxes.length; i++) {
@ -572,36 +572,42 @@ export default {
LODOP.NEWPAGE() // 新页
}
// 绘制外边框
LODOP.ADD_PRINT_RECT('2mm', '2mm', '66mm', '26mm', 0, 1)
// ===== 绘制边框和分隔线 =====
// 外边框: ADD_PRINT_RECT(上边距, 左边距, 宽度, 高度, 线宽, 线型)
LODOP.ADD_PRINT_RECT('2mm', '2mm', '66mm', '16mm', 0, 1)
// 绘制中间竖线(左右分隔)
LODOP.ADD_PRINT_LINE('2mm', '46mm', '28mm', '46mm', 0, 1)
// 中间竖线(左右分隔): ADD_PRINT_LINE(起点Y, 起点X, 终点Y, 终点X, 线宽, 线型)
LODOP.ADD_PRINT_LINE('2mm', '50mm', '18mm', '50mm', 0, 1)
// 绘制左侧横线(NO.和Carton No.之间的分隔)
LODOP.ADD_PRINT_LINE('15mm', '2mm', '15mm', '46mm', 0, 1)
// 左侧横线(NO.和Carton No.之间): ADD_PRINT_LINE(起点Y, 起点X, 终点Y, 终点X, 线宽, 线型)
LODOP.ADD_PRINT_LINE('10mm', '2mm', '10mm', '50mm', 0, 1)
// 左侧文字信息 - NO. (上下居中)
const text1 = LODOP.ADD_PRINT_TEXT('6.5mm', '3mm', '40mm', '6mm', 'NO.: ' + (this.searchData.orderNo || ''))
LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei")
LODOP.SET_PRINT_STYLEA(text1, "FontSize", 9)
LODOP.SET_PRINT_STYLEA(text1, "Bold", 1)
// ===== 左侧文字信息 =====
// NO.文字: ADD_PRINT_TEXT(上边距, 左边距, 宽度, 高度, 内容)
// 参数说明:上边距=4.5mm, 左边距=3mm, 宽度=46mm, 高度=5mm
const text1 = LODOP.ADD_PRINT_TEXT('4.5mm', '3mm', '46mm', '5mm', 'NO.: ' + (this.searchData.orderNo || ''))
LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei") // 字体
LODOP.SET_PRINT_STYLEA(text1, "FontSize", 8) // 字号
LODOP.SET_PRINT_STYLEA(text1, "Bold", 1) // 粗体
// 左侧文字信息 - Carton No. (上下居中,单行显示)
const text2 = LODOP.ADD_PRINT_TEXT('19.5mm', '3mm', '40mm', '6mm', 'Carton No.: ' + (box.boxNo || ''))
LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei")
LODOP.SET_PRINT_STYLEA(text2, "FontSize", 9)
LODOP.SET_PRINT_STYLEA(text2, "Bold", 1)
// Carton No.文字: ADD_PRINT_TEXT(上边距, 左边距, 宽度, 高度, 内容)
// 参数说明:上边距=12.5mm, 左边距=3mm, 宽度=46mm, 高度=5mm
const text2 = LODOP.ADD_PRINT_TEXT('12.5mm', '3mm', '46mm', '5mm', 'Carton No.: ' + (box.boxNo || ''))
LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei") // 字体
LODOP.SET_PRINT_STYLEA(text2, "FontSize", 8) // 字号
LODOP.SET_PRINT_STYLEA(text2, "Bold", 1) // 粗体
// 右侧二维码(使用 LODOP 原生二维码,调整居中位置)
// 向右移动1mm,向下移动1mm
const qrIndex = LODOP.ADD_PRINT_BARCODE('6mm', '48mm', '20mm', '20mm', 'QRCode', box.boxNo)
LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeVersion", 4)
LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeErrorLevel", "M")
// ===== 右侧二维码 =====
// 二维码: ADD_PRINT_BARCODE(上边距, 左边距, 宽度, 高度, 类型, 内容)
// 参数说明:上边距=4mm, 左边距=52mm, 宽度=12mm, 高度=12mm
// 右侧区域:从50mm到68mm(宽18mm),高度16mm
const qrIndex = LODOP.ADD_PRINT_BARCODE('4mm', '53mm', '13mm', '13mm', 'QRCode', box.boxNo)
LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeVersion", 4) // 二维码版本
LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeErrorLevel", "M") // 纠错级别
}
// 预览打印
//LODOP.PREVIEW()
// 执行打印
//LODOP.PREVIEW() // 取消注释可预览
LODOP.PRINT();
} catch (error) {

Loading…
Cancel
Save