You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

207 lines
17 KiB

2 years ago
1 year ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
  1. import getLodop from '@/utils/LodopFuncs.js'
  2. const ckpLogo = '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
  3. export const print_roll_label = (printList,printerName,testFlag = false)=>{
  4. const LODOP = getLodop()
  5. if (LODOP){
  6. LODOP.SET_LICENSES("","549DA0AD145DA11D8FC8654C58657B8EA09","","");
  7. LODOP.SET_PRINT_MODE('CUSTOM_TASK_NAME', '多条页')
  8. for (let i = 0; i < printList.length; i++) {
  9. let row = printList[i]
  10. let direction = ''
  11. let offsetX = 0
  12. let offsetY = 0
  13. if (testFlag){
  14. direction = row.direction
  15. offsetX = row.offsetX
  16. offsetY = row.offsetY
  17. }
  18. //如果打印正常的标签
  19. LODOP.NewPageA();
  20. LODOP.PRINT_INITA(offsetY,offsetX,1100,512)
  21. LODOP.SET_PRINTER_INDEXA(printerName)
  22. if (row.rollLabelFlag === 'Y'){
  23. prePrintLabel(LODOP,row,direction === 'Vertical'?2:0)
  24. }else {
  25. printLabel(LODOP,row,direction === 'Vertical'?2:0)
  26. }
  27. // LODOP.PRINT_DESIGN()
  28. }
  29. }
  30. }
  31. function prePrintLabel(LODOP,row,hz=0){
  32. LODOP.SET_PRINT_PAGESIZE(hz,450,250,"");
  33. LODOP.ADD_PRINT_IMAGE(3,4,"18mm","18mm",row.qrCode);
  34. LODOP.SET_PRINT_STYLEA(0,"Stretch",1);
  35. LODOP.ADD_PRINT_IMAGE(7,120,30,8,"<img src=\"data:image/png;base64," + ckpLogo + "\"/>");
  36. LODOP.SET_PRINT_STYLEA(0,"Stretch",2);
  37. LODOP.ADD_PRINT_TEXT(15,73,30,20,"REF");
  38. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  39. LODOP.SET_PRINT_STYLEA(0,"FontSize",5);
  40. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  41. LODOP.ADD_PRINT_TEXT(13,93,80,30,row.ref);
  42. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  43. LODOP.SET_PRINT_STYLEA(0,"FontSize",8);
  44. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  45. LODOP.ADD_PRINT_TEXT(24,73,25,20,"QTY");
  46. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  47. LODOP.SET_PRINT_STYLEA(0,"FontSize",5);
  48. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  49. LODOP.ADD_PRINT_TEXT(24,93,35,20,row.qty);
  50. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  51. LODOP.SET_PRINT_STYLEA(0,"FontSize",5);
  52. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  53. LODOP.ADD_PRINT_TEXT(24,122,25,20,"UOM");
  54. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  55. LODOP.SET_PRINT_STYLEA(0,"FontSize",5);
  56. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  57. LODOP.ADD_PRINT_TEXT(24,140,50,20,row.uom);
  58. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  59. LODOP.SET_PRINT_STYLEA(0,"FontSize",5);
  60. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  61. LODOP.ADD_PRINT_TEXT(32,73,30,20,"DESC");
  62. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  63. LODOP.SET_PRINT_STYLEA(0,"FontSize",5);
  64. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  65. LODOP.ADD_PRINT_TEXT(32,96,80,35,row.desc);
  66. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  67. LODOP.SET_PRINT_STYLEA(0,"LineSpacing",-3);
  68. LODOP.SET_PRINT_STYLEA(0,"FontSize",5);
  69. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  70. if (row.rollLabelRequired === 'Y'){
  71. LODOP.ADD_PRINT_TEXT(56,73,30,20,"ROLL");
  72. }else if (row.serialNumberRequired === 'Y'){
  73. LODOP.ADD_PRINT_TEXT(56,73,50,20,"SERIAL");
  74. }
  75. if (row.rollLabelRequired === 'Y' || row.serialNumberRequired === 'Y'){
  76. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  77. LODOP.SET_PRINT_STYLEA(0,"FontSize",5);
  78. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  79. }
  80. if (row.rollLabelRequired === 'Y'){
  81. LODOP.ADD_PRINT_TEXT(56,95,80,20,row.rollNo);
  82. }else if (row.serialNumberRequired === 'Y'){
  83. LODOP.ADD_PRINT_TEXT(56,95,80,20,row.serialNumber);
  84. }
  85. if (row.rollLabelRequired === 'Y' || row.serialNumberRequired === 'Y'){
  86. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  87. LODOP.SET_PRINT_STYLEA(0,"FontSize",5);
  88. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  89. }
  90. LODOP.ADD_PRINT_TEXT(63,73,29,15,"DATE");
  91. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  92. LODOP.SET_PRINT_STYLEA(0,"FontSize",5);
  93. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  94. LODOP.ADD_PRINT_TEXT(63,95,85,16,row.date);
  95. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  96. LODOP.SET_PRINT_STYLEA(0,"FontSize",5);
  97. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  98. LODOP.PRINT();
  99. }
  100. function printLabel(LODOP,row,hz){
  101. LODOP.SET_PRINT_PAGESIZE(hz,565,252,"");
  102. LODOP.ADD_PRINT_IMAGE(-3,-3,"20mm","20mm",row.qrCode);
  103. LODOP.SET_PRINT_STYLEA(0,"Stretch",2);
  104. LODOP.ADD_PRINT_IMAGE(1,137,62,12,"<img src=\"data:image/png;base64," + ckpLogo + "\"/>");
  105. LODOP.SET_PRINT_STYLEA(0,"Stretch",2);
  106. LODOP.ADD_PRINT_TEXT(14,70,25,13,"REF");
  107. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  108. LODOP.SET_PRINT_STYLEA(0,"FontSize",6);
  109. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  110. LODOP.ADD_PRINT_TEXT(27,70,25,13,"QTY");
  111. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  112. LODOP.SET_PRINT_STYLEA(0,"FontSize",6);
  113. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  114. LODOP.ADD_PRINT_TEXT(40,70,35,14,"DESC");
  115. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  116. LODOP.SET_PRINT_STYLEA(0,"FontSize",6);
  117. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  118. LODOP.ADD_PRINT_TEXT(13,94,76,18,row.ref);
  119. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  120. LODOP.SET_PRINT_STYLEA(0,"FontSize",8);
  121. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  122. LODOP.SET_PRINT_STYLEA(0,"LetterSpacing",-1);
  123. LODOP.ADD_PRINT_TEXT(27,94,45,13,row.qty);
  124. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  125. LODOP.SET_PRINT_STYLEA(0,"FontSize",6);
  126. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  127. LODOP.ADD_PRINT_TEXT(40,94,110,31,row.desc);
  128. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  129. LODOP.SET_PRINT_STYLEA(0,"FontSize",6);
  130. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  131. LODOP.SET_PRINT_STYLEA(0,"LineSpacing",-2);
  132. if (row.rollLabelRequired === 'Y'){
  133. LODOP.ADD_PRINT_TEXT(69,4,96,13,"ROLL NUMBER");
  134. }else if (row.serialNumberRequired === 'Y'){
  135. LODOP.ADD_PRINT_TEXT(69,4,96,13,"SERIAL NUMBER");
  136. }
  137. if (row.rollLabelRequired === 'Y' || row.serialNumberRequired === 'Y'){
  138. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  139. LODOP.SET_PRINT_STYLEA(0,"FontSize",6);
  140. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  141. }
  142. LODOP.ADD_PRINT_TEXT(79,4,119,13,"MANUFACTURE DATE");
  143. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  144. LODOP.SET_PRINT_STYLEA(0,"FontSize",6);
  145. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  146. LODOP.ADD_PRINT_TEXT(79,94,105,13,row.date);
  147. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  148. LODOP.SET_PRINT_STYLEA(0,"FontSize",6);
  149. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  150. if (row.rollLabelRequired === 'Y'){
  151. LODOP.ADD_PRINT_TEXT(69,94,130,13,row.rollNo);
  152. }else if (row.serialNumberRequired === 'Y'){
  153. LODOP.ADD_PRINT_TEXT(69,94,130,13,row.serialNumber);
  154. }
  155. if (row.rollLabelRequired === 'Y' || row.serialNumberRequired === 'Y'){
  156. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  157. LODOP.SET_PRINT_STYLEA(0,"FontSize",6);
  158. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  159. }
  160. LODOP.ADD_PRINT_TEXT(27,141,29,13,"UoM");
  161. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  162. LODOP.SET_PRINT_STYLEA(0,"FontSize",6);
  163. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  164. LODOP.ADD_PRINT_TEXT(27,165,40,13,row.uom);
  165. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  166. LODOP.SET_PRINT_STYLEA(0,"FontSize",6);
  167. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  168. //这个是固定的,在料号的后面
  169. LODOP.ADD_PRINT_TEXT(14,141,66,13,"(Global P/N)");
  170. LODOP.SET_PRINT_STYLEA(0,"FontName","Arial");
  171. LODOP.SET_PRINT_STYLEA(0,"FontSize",6);
  172. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  173. LODOP.PRINT();
  174. }