12 changed files with 313 additions and 249 deletions
-
38src/components/print/PrintService.vue
-
143src/utils/zplGenerator.js
-
56src/utils/zplUtil.js
-
59src/utils/zplUtil2.js
-
42src/views/modules/labelSetting/LabelDesigner.vue
-
6src/views/modules/labelSetting/components/DesignCanvas.vue
-
13src/views/modules/labelSetting/components/DesignElement.vue
-
7src/views/modules/labelSetting/components/HorizontalToolbar.vue
-
191src/views/modules/labelSetting/components/PropertyForm.vue
-
2src/views/modules/labelSetting/components/PropertyPanel.vue
-
2src/views/modules/labelSetting/components/ZPLPreview.vue
-
3src/views/modules/labelSetting/label_setting.vue
@ -1,56 +0,0 @@ |
|||
export function generateZPL(elements,zplHOrP) { |
|||
const zpl = ['^XA']; |
|||
zpl.push(zplHOrP) |
|||
elements.forEach(el => { |
|||
const x = Math.round(el.x); |
|||
const y = Math.round(el.y * 1.5); // 画布到 ZPL 像素转换
|
|||
|
|||
switch (el.type) { |
|||
case 'text': |
|||
zpl.push(`^CI28^LH0,^JUS^CWJ,E:SIMSUN.FNT^CFJ,${el.fontSize},${el.fontSize}`); |
|||
zpl.push(el.newline |
|||
? `^FO${x},${y}^FB${el.lineWidth},${el.lineRows},0^CFJ,${el.fontSize}^FD${el.data}^FS` |
|||
: `^FO${x},${y}^FD${el.data}^FS`); |
|||
if (el.bold) { |
|||
zpl.push(el.newline |
|||
? `^FO${x+1},${y}^FB${el.lineWidth},${el.lineRows},0^CFJ,${el.fontSize}^FD${el.data}^FS` |
|||
: `^FO${x+1},${y}^FD${el.data}^FS`); |
|||
zpl.push(el.newline |
|||
? `^FO${x},${y+1}^FB${el.lineWidth},${el.lineRows},0^CFJ,${el.fontSize}^FD${el.data}^FS` |
|||
: `^FO${x},${y+1}^FD${el.data}^FS`); |
|||
zpl.push(el.newline |
|||
? `^FO${x+1},${y+1}^FB${el.lineWidth},${el.lineRows},0^CFJ,${el.fontSize}^FD${el.data}^FS` |
|||
: `^FO${x+1},${y+1}^FD${el.data}^FS`); |
|||
} |
|||
break; |
|||
|
|||
case 'barcode': |
|||
zpl.push(`^FO${x},${y}^BY${el.width}^BCN,${el.height},^FD${el.data}^FS`); |
|||
break; |
|||
|
|||
case 'qrcode': |
|||
zpl.push(`^FO${x},${y}^BQN,2,${el.height},^FDLA,${el.data}^FS`); |
|||
break; |
|||
|
|||
case 'onecode': |
|||
zpl.push(`^FO${x},${y}^BY${el.width}^BCN,${el.height},^FD${el.data}^FS`); |
|||
break; |
|||
|
|||
case 'pic': |
|||
if (el.data) { |
|||
zpl.push(`^FO${x},${y}^GFA,${el.data}`); |
|||
} |
|||
break; |
|||
|
|||
case 'hLine': |
|||
zpl.push(`^FO${x},${y}^GB${el.width},${el.height},3,B^FS`); |
|||
break; |
|||
|
|||
case 'vLine': |
|||
zpl.push(`^FO${x},${y}^GB1,${el.height},${el.width},B^FS`); |
|||
break; |
|||
} |
|||
}); |
|||
zpl.push('^XZ'); |
|||
return zpl.join('\n'); |
|||
} |
|||
@ -1,59 +0,0 @@ |
|||
export function generateZPL(elements,zplHOrP) { |
|||
const zpl = ['^XA']; |
|||
//zpl.push('^POI');
|
|||
zpl.push(zplHOrP) |
|||
elements.forEach(el => { |
|||
const x = Math.round(el.y * 1.3); |
|||
const y = Math.round((750-el.x) * 1.5); // 你之前的转换比例保持不变
|
|||
|
|||
switch (el.type) { |
|||
case 'text': |
|||
zpl.push(`^CI28^LH0,^JUS^CWJ,E:SIMSUN.FNT^CFJ,${el.fontSize},${el.fontSize}`); |
|||
zpl.push(el.newline |
|||
? `^FO${x},${y}^FB${el.lineWidth},${el.lineRows},0^CFJ,${el.fontSize}^FD${el.data}^FS` |
|||
: `^FO${x},${y}^FD${el.data}^FS`); |
|||
if (el.bold) { |
|||
zpl.push(el.newline |
|||
? `^FO${x+1},${y}^FB${el.lineWidth},${el.lineRows},0^CFJ,${el.fontSize}^FD${el.data}^FS` |
|||
: `^FO${x+1},${y}^FD${el.data}^FS`); |
|||
zpl.push(el.newline |
|||
? `^FO${x},${y+1}^FB${el.lineWidth},${el.lineRows},0^CFJ,${el.fontSize}^FD${el.data}^FS` |
|||
: `^FO${x},${y+1}^FD${el.data}^FS`); |
|||
zpl.push(el.newline |
|||
? `^FO${x+1},${y+1}^FB${el.lineWidth},${el.lineRows},0^CFJ,${el.fontSize}^FD${el.data}^FS` |
|||
: `^FO${x+1},${y+1}^FD${el.data}^FS`); |
|||
} |
|||
break; |
|||
|
|||
case 'barcode': |
|||
zpl.push(`^FO${x},${y}^BY${el.width}^BCB,${el.height},Y,N,N^FD${el.data}^FS`); |
|||
break; |
|||
|
|||
case 'qrcode': |
|||
zpl.push(`^FO${x},${y}^BQB,2,${el.height},^FDLA,${el.data}^FS`); |
|||
break; |
|||
|
|||
case 'onecode': |
|||
zpl.push(`^FO${x},${y}^BY${el.width}^BCB,${el.height},^FD${el.data}^FS`); |
|||
break; |
|||
|
|||
case 'pic': |
|||
if (el.data) { |
|||
zpl.push(`^FO${x},${y}^GFA,${el.data}`); |
|||
} |
|||
break; |
|||
|
|||
case 'hLine': |
|||
const y1 = Math.round(1200-el.x)-el.width; |
|||
zpl.push(`^FO${x},${y1}^FWR^GB${el.height},${el.width},3,B^FS`); |
|||
break; |
|||
case 'vLine': |
|||
zpl.push(`^FO${x},${y}^FWR^GB${el.height},${el.width},3,B^FS`); |
|||
break; |
|||
|
|||
|
|||
} |
|||
}); |
|||
zpl.push('^XZ'); |
|||
return zpl.join('\n'); |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue