Blame view

美国版/Food Labeling Management App UniApp/src/utils/reprintFromMergedTemplate.ts 1.24 KB
43d16ca6   杨鑫   打印日志
1
2
3
4
  import {
    normalizeLabelTemplateFromPreviewApi,
    sortElementsForPreview,
  } from './labelPreview/normalizePreviewTemplate'
b04bc3a5   杨鑫   打印日志 重新打印
5
6
7
8
  import {
    printSystemTemplateForCurrentPrinter,
    type SystemTemplatePrintCanvasRasterOptions,
  } from './print/manager/printerManager'
43d16ca6   杨鑫   打印日志
9
10
11
12
13
14
15
16
17
18
  import type { SystemLabelTemplate } from './print/types/printer'
  
  /**
   * 将接口 11 返回的 `mergedTemplateJson`(或历史落库的合并模板 JSON 字符串)交给当前打印机打印。
   */
  export async function printMergedTemplateJsonString (
    mergedJson: string,
    options: {
      printQty?: number
      onProgress?: (percent: number) => void
b04bc3a5   杨鑫   打印日志 重新打印
19
      canvasRaster?: SystemTemplatePrintCanvasRasterOptions
43d16ca6   杨鑫   打印日志
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
    } = {}
  ): Promise<void> {
    let raw: unknown
    try {
      raw = JSON.parse(mergedJson) as unknown
    } catch {
      throw new Error('Invalid print snapshot JSON')
    }
    let tmpl = normalizeLabelTemplateFromPreviewApi(raw)
    if (!tmpl) {
      throw new Error('Cannot parse label template from snapshot')
    }
    const sorted: SystemLabelTemplate = {
      ...tmpl,
      elements: sortElementsForPreview(tmpl.elements || []),
    }
    await printSystemTemplateForCurrentPrinter(
      sorted,
      {},
b04bc3a5   杨鑫   打印日志 重新打印
39
      { printQty: options.printQty ?? 1, canvasRaster: options.canvasRaster },
43d16ca6   杨鑫   打印日志
40
41
42
      options.onProgress
    )
  }