37 lines
931 B
Go
37 lines
931 B
Go
package escpos
|
|
|
|
import (
|
|
"fmt"
|
|
"image/png"
|
|
"os"
|
|
"path/filepath"
|
|
"time"
|
|
)
|
|
|
|
// SaveTicketPNG guarda el ticket en dir y devuelve la ruta del fichero.
|
|
func SaveTicketPNG(dir string, t *Ticket) (string, error) {
|
|
if err := os.MkdirAll(dir, 0o755); err != nil {
|
|
return "", err
|
|
}
|
|
path := filepath.Join(dir, fmt.Sprintf("ticket-%s-%04d.png", t.Time.Format("20060102-150405"), t.Seq))
|
|
f, err := os.Create(path)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
if err := png.Encode(f, t.Image); err != nil {
|
|
f.Close()
|
|
return "", err
|
|
}
|
|
return path, f.Close()
|
|
}
|
|
|
|
// SaveCapture guarda todos los bytes recibidos en un .bin dentro de dir.
|
|
func (p *Printer) SaveCapture(dir string) (string, int, error) {
|
|
data := p.Capture()
|
|
if err := os.MkdirAll(dir, 0o755); err != nil {
|
|
return "", 0, err
|
|
}
|
|
path := filepath.Join(dir, "captura-"+time.Now().Format("20060102-150405")+".bin")
|
|
return path, len(data), os.WriteFile(path, data, 0o644)
|
|
}
|