tscProtocol.ts 1.1 KB
import type {
  LabelPrintPayload,
  LabelTemplateData,
  MonochromeImageData,
  PrintImageOptions,
  StructuredLabelTemplate,
} from '../types/printer'
import { resolveTscTemplate } from '../templateRenderer'
import { createTestPrintTemplate } from '../templates/testPrintTemplate'
import { buildTestTscLabel, buildTscImageLabel, buildTscLabel, buildTscTemplateLabel } from '../tscLabelBuilder'

export function buildTscTestPrintData (): number[] {
  const template = createTestPrintTemplate(203, 1)
  if (!template.tsc) {
    throw new Error('Test template does not support TSC printers')
  }
  return buildTscTemplateLabel(template.tsc)
}

export function buildTscLabelData (payload: LabelPrintPayload): number[] {
  return buildTscLabel(payload)
}

export function buildTscImageData (
  image: MonochromeImageData,
  options: PrintImageOptions = {},
  dpi = 203
): number[] {
  return buildTscImageLabel(image, options, dpi)
}

export function buildTscTemplateData (
  template: StructuredLabelTemplate,
  data: LabelTemplateData = {}
): number[] {
  return buildTscTemplateLabel(resolveTscTemplate(template, data))
}