| Name | Message | Date |
|---|---|---|
| 📄 escpos_printer.rs | 1 month ago | |
| 📄 main.rs | 1 month ago | |
| 📄 proto.rs | - | |
| 📄 receipt_printer_service.rs | 1 month ago |
📄
src/escpos_printer.rs
use escpos::{ driver::NetworkDriver, errors::PrinterError, printer::Printer, utils::{BitImageOption, BitImageSize, Protocol}, }; pub struct EscposPrinter { printer: Printer<NetworkDriver>, } impl EscposPrinter { pub const IMAGE_WIDTH_PIXEL: u32 = 72 * 8; pub const IMAGE_WIDTH_CM: f32 = 7.2; pub const IMAGE_WIDTH_PT: f32 = Self::IMAGE_WIDTH_CM / 0.03527; pub const IMAGE_PIXELS_PER_PT: f32 = Self::IMAGE_WIDTH_PIXEL as f32 / Self::IMAGE_WIDTH_PT; pub fn open(host: &str, port: u16) -> Result<Self, PrinterError> { let driver = NetworkDriver::open(host, port, None)?; Ok(Self { printer: Printer::new(driver, Protocol::default(), None), }) } pub fn print_image(&mut self, image: &[u8]) -> Result<(), PrinterError> { self.printer.init()?; self.printer.bit_image_from_bytes_option( image, BitImageOption::new(Some(Self::IMAGE_WIDTH_PIXEL), None, BitImageSize::Normal)?, )?; self.printer.print_cut()?; Ok(()) } }