package main

import "fmt"

// CampoTexto gera um campo de texto ZPL.
// x, y: posição em dots (203dpi: 1mm ≈ 8 dots)
// altura, largura: tamanho da fonte em dots
func CampoTexto(x, y, altura, largura int, texto string) string {
	return fmt.Sprintf("^FO%d,%d^A0N,%d,%d^FD%s^FS", x, y, altura, largura, texto)
}

// CodigoBarras128 gera um Code 128 na posição x, y.
// alturaBarras: altura das barras em dots
// mostrarTexto: true = imprime o número legível abaixo das barras
func CodigoBarras128(x, y, alturaBarras int, mostrarTexto bool, dados string) string {
	txt := "N"
	if mostrarTexto {
		txt = "Y"
	}
	return fmt.Sprintf("^FO%d,%d^BCN,%d,%s,N,N^FD%s^FS", x, y, alturaBarras, txt, dados)
}

// LinhaHorizontal desenha uma linha horizontal
func LinhaHorizontal(x, y, largura, espessura int) string {
	return fmt.Sprintf("^FO%d,%d^GB%d,%d,%d^FS", x, y, largura, espessura, espessura)
}
