thermal-print
thermal-print
provides a serial interface driver for the ESC/POS implementation of the CSN-A2 thermal printer sold by Adafruit and others. The crate should be supported on all platforms targeted by embedded-hal
which possess a dynamic allocator, and it is #![no_std]
-compatible.
thermal-print
still lacks some minor functionality, but already supports
tinybmp
crate).Minimum Supported Rust Version: 1.56.0
Just depend on the crate in your Cargo manifest:
[dependencies]
thermal-print = "0.1"
Now you can bring the crate into scope:
use thermal_print::*
Bitmap printing depends on the TinyBMP crate. See the example on printing bitmaps below.
This example initializes the printer, configures font B
, sets the justification to center and prints Hello, world!
onto the paper.
```
// Configure the serial interface for your platform
let config = serial::config::Config::default()
.baudrate(Hertz(19_200));
let mut serial: serial::Serial
// Construct a new Printer
with the serial interface and a delay
implementation for
// blocking while the printer prints
let mut printer = Printer::new(serial, delay::FreeRtos);
printer.init();
printer.setprintmode( PrintModeBuilder::default() .font(Font::FontB) .build() .unwrap() ); printer.set_justification(Justification::Center);
writeln!(printer, "Hello, world!"); ```
This example prints a bitmap embedded via the include_bytes!
macro. It assumes you have added tinybmp
as a dependency to your manifest, and that a suitable bitmap file ./resources/ferris.bmp
is present in your project. See the documentation on further information on bitmap printing.
``` use tinybmp::RawBmp;
printer.printbitmap( RawBmp::fromslice( include_bytes!("../resources/ferris.bmp") ).unwrap(), RasterBitImageMode::Normal ); ```
std
: This enables linking against the Rust standard library. It is disabled by default.