Skip to content

Latest commit

 

History

History
72 lines (50 loc) · 1.55 KB

README.md

File metadata and controls

72 lines (50 loc) · 1.55 KB

go-escpos

This is a Go library to talk to escpos capable devices, mainly the Epson POS printers.

it will allow you to send print jobs in a simple functional interface, this library also supports automatic discovery of USB devices.

This library works with both Go and TinyGo (for microcontrollers).

Documentation can be found on pkg.go.dev

Example

package main

import (
	"fmt"

	"github.com/mect/go-escpos"
)

func main() {
	p, err := escpos.NewUSBPrinterByPath("") // empry string will do a self discovery
	if err != nil {
		fmt.Println(err)
		return
	}

	p.Init() // start
	p.Smooth(true) // use smootth printing
	p.Size(2, 2) // set font size
	p.PrintLn("HELLO GO")

	p.Size(1, 1)
	p.Font(escpos.FontB) // change font
	p.PrintLn("This is a test of MECT go-escpos")
	p.Font(escpos.FontA)

	p.Align(escpos.AlignRight) // change alignment
	p.PrintLn("An all Go\neasy to use\nEpson POS Printer library")
	p.Align(escpos.AlignLeft)

	p.Size(2, 2)
	p.PrintLn("* No magic numbers")
	p.PrintLn("* ISO8859-15 ŠÙþþØrt")
	p.Underline(true)
	p.PrintLn("* Extended layout")
	p.Underline(false)
	p.PrintLn("* All in Go!")

	p.Align(escpos.AlignCenter)
	p.Barcode("MECT", escpos.BarcodeTypeCODE39) // print barcode
	p.Align(escpos.AlignLeft)

	p.FeedN(2) // feed 2
	p.Cut() // cut
	p.End() // stop
}

(The TinyGo example can be found in demo-tinygo)

Limitations

  • The USB discovery only works on Linux due to the use of udev

(PRs to fix these welcome!)

Known to work with

  • Epson TM-20III