#printing #label #raster #command #brother #binary-data #ql

brother_ql

Generate Brother QL Raster Command data from images

7 stable releases

1.0.6 Oct 2, 2024
1.0.5 Sep 26, 2024
1.0.4 Jun 28, 2024
1.0.3 Mar 8, 2024
1.0.1 Mar 7, 2024

#270 in Images

MIT license

23KB
495 lines

brother_ql

This is a crate to convert image data to the Raster Command binary data understood by the Brother QL-820NWB label printer.

  • It is still very much work-in-progress so some bugs might still exist.
  • Currently, only the 820NWB printer is supported but other printers should be relatively easy to add - especially the 8xx sibling models.
  • The two-color (red and black) printing mode is supported
  • For details, check the official Raster Command Reference

Here is a small example on how to use it:

use std::{error::Error, fs::File, io::Write};

use brother_ql::{
    printjob::{CutBehavior, PrintJob},
    media::Media,
};

pub fn main() -> Result<(), Box<dyn Error>> {
    let img = image::open("test.png")?;
    let job = PrintJob {
        no_pages: 1,
        image: img,
        media: Media::C62,       // use 62mm wide continuous tape
        high_dpi: false,
        compressed: false,       // unsupported
        quality_priority: false, // no effect on two-color printing
        cut_behaviour: CutBehavior::CutAtEnd,
    };
    let data = job.compile()?;
    let mut file = File::create("test.bin")?;
    let _ = file.write(&data);
    // We can now send this binary directly to the printer, for example using `nc`
    Ok(())
}

Dependencies

~4MB
~78K SLoC