https://github.com/bamarni/ticketfile
Receipts for humans
https://github.com/bamarni/ticketfile
epson escpos golang pos receipt template-engine thermal-printer thermal-printing
Last synced: 6 months ago
JSON representation
Receipts for humans
- Host: GitHub
- URL: https://github.com/bamarni/ticketfile
- Owner: bamarni
- License: mit
- Created: 2016-02-21T15:10:07.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-01-03T12:05:41.000Z (almost 9 years ago)
- Last Synced: 2025-04-08T19:22:45.575Z (6 months ago)
- Topics: epson, escpos, golang, pos, receipt, template-engine, thermal-printer, thermal-printing
- Language: Go
- Homepage:
- Size: 846 KB
- Stars: 15
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ticketfile [](https://travis-ci.org/bamarni/ticketfile)
- [What is a Ticketfile?](#what-is-a-ticketfile)
- [Why would I use Ticketfiles?](#why-would-i-use-ticketfiles)
- [Ticketfile specification](#ticketfile-specification)
- [Golang library usage](#golang-library-usage)
- [Contributing](#contributing)## What is a Ticketfile?
A Ticketfile is a textual representation of a thermal printer receipt.
It allows you to write simple readable text for your receipts rather than having to deal for example with
[ESC/POS](http://content.epson.de/fileadmin/content/files/RSD/downloads/escpos.pdf)
specification directly.## Why would I use Ticketfiles?
Maybe you've found an ESC/POS library for your favorite language out there
and you're wondering why you should use Ticketfiles instead?Even though they're inspired by ESC/POS specification, Ticketfiles are human-readable
([here is a Ticketfile](tests/functional/fixtures/Ticketfile) and its [ESC/POS equivalent](tests/functional/fixtures/Ticketfile.expected)) and **manufacturer agnostic**.
In the future if a new standard emerges we'll do our best to support it without changing the spec in a breaking way.If you use a library you'll also be tied to a language, Ticketfiles are **language agnostic**, it's just text.
They can easily be generated through any language and templating engine.Finally, even though they mainly target receipt printers, Ticketfiles are **context agnostic**.
For instance, our Golang library also provides an HTML converter so that a Ticketfile can be displayed in a browser or sent as e-mail attachment.## Ticketfile specification
Full specification are available [here](spec/spec.md).
## Golang library usage
The Golang library contains a parser and various converters.
The most simple way to use it is through the `ticket` command :
go get -u github.com/bamarni/ticketfile/cmd/ticket
The following command would then convert a Ticketfile into ESC/POS commands and send them to a printer :
ticket < /path/to/ticketfile > /path/to/device
*In case of a syntax error in your ticketfile, a message would be displayed to stderr while nothing would be sent to the printer device.*
To convert your Ticketfile into HTML :
ticket -html < /path/to/ticketfile > receipt.html
## Contributing
Contributions and new ideas are always welcome.
The Golang library is a first-class citizen so any change in the specification needs to be reflected in the Go engine.
Released under the MIT license.