example.lua

local escpos = require("escpos")


math.randomseed(os.time())
local date = os.date("%d/%m/%Y")
local hour = os.date("%H:%M")

local items = {
  {'TOR235',15,'UND'},
  {'TOR236',15,'UND'},
  {'TOR237',15,'UND'},
  {'TOR238',15,'UND'},
  {'TOR239',15,'UND'},
  {'TOR240',1,'BOX'}
}

local total = 0
escpos.width = 30
local line_one = string.rep("=", escpos.width)
local line_two = string.rep("-", escpos.width)

escpos:connector_type("linux")
device:connector("/dev/usb/lp0") -- type linux or network
escpos:setJustification(escpos.JUSTIFY_CENTER)
escpos:feed(1)
escpos:text("TITLE")
escpos:text("NUMBER")
escpos:text("TEST")
escpos:text("POSTAL CODE")
escpos:text(line_one)
escpos:setJustification(escpos.JUSTIFY_LEFT)
escpos:text(escpos:two_columns("DATE: " .. date, "HOUR: " .. hour))
escpos:text(escpos:two_columns("CODE:", math.random(100000, 900000)))
escpos:text(escpos:two_columns("CLIENT:", 'John Doe'))
escpos:feed(1)
escpos:setJustification(escpos.JUSTIFY_CENTER)
escpos:text(line_two)
escpos:text("PRODUCTS")
escpos:text(line_two)
escpos:feed(1)
escpos:setJustification(escpos.JUSTIFY_LEFT)
escpos:text(escpos:three_columns("ARTICLE ", "AMOUNT", " UNIT"))
escpos:text(escpos:three_columns("-------- ", "--------", " ------"))
for idx, value in ipairs(items) do
  escpos:text(escpos:three_columns(value[1], value[2], value[3]))
  total = total + tonumber(value[2])
end
escpos:feed(1)
escpos:text(line_two)
escpos:setEmphasis(true)
escpos:text(escpos:two_columns("TOTAL UNITS: ", total))
escpos:feed(1)
escpos:setEmphasis(false)
escpos:text(line_two)
escpos:text("FOOTER EXAMPLE")
escpos:text(line_one)
escpos:feed(1)
escpos:setJustification(escpos.JUSTIFY_CENTER)
escpos:setBarcodeHeight(40)
escpos:setBarcodeWidth(2)
escpos:setBarcodeTextPosition(escpos.BARCODE_TEXT_NONE)
escpos:barcode("code128", "Approved")
escpos:feed(2)
device:close()
generated by LDoc 1.5.0 Last updated 2024-04-11 08:19:24