Printers: A printing APIs implementation for unix (cups) and windows (winspool).
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(())
}
}