Crates.io | printers |
lib.rs | printers |
version | 2.1.0 |
source | src |
created_at | 2022-08-23 01:57:50.847828 |
updated_at | 2024-11-26 00:39:32.319626 |
description | A lib to get printers and print files on unix and windows |
homepage | https://crates.io/crates/printers |
repository | https://github.com/talesluna/rust-printers |
max_upload_size | |
id | 650680 |
size | 79,452 |
Provides all system printers, create and get print jobs.
See the references in docs.rs.
Target | API | List printers | List jobs | Print bytes and text files | Print PDF,images, etc... |
---|---|---|---|---|---|
Unix | cups | ✅ | ✅ | ✅ | ✅ |
Windows | winspool | ✅ | ✅ | ✅ | 🤔** |
** On Windows this lib use RAW datatype to process printing. Expected output depends of printer firmware.
Get all available printers
let printers = get_printers();
// Vec<Printer>
Create print job of an byte array
printer.print("42".as_bytes());
// Result<(), &'static str>
Create print job of an file
printer.print_file("my_file/example/path.txt");
// Result<(), &'static str>
Get a printer by name
let my_printer = get_printer_by_name("my_printer");
// Option<Printer>
Get the default printer
let printer = get_default_printer();
// Option<Printer>
Simple compilation
use printers::{get_printer_by_name, get_default_printer, get_printers};
fn main() {
// Iterate all available printers
for printer in get_printers() {
println!("{:?}", printer);
}
// Get a printer by the name
let my_printer = get_printer_by_name("my_printer");
if my_printer.is_some() {
my_printer.unwrap().print_file("notes.txt", None);
// Err("") or Ok(())
}
// Use the default printer
let default_printer = get_default_printer();
if default_printer.is_some() {
default_printer.unwrap().print("dlrow olleh".as_bytes(), Some("My Job"));
// Ok(())
}
}