2 releases (1 stable)
new 2.1.0-rc2 | Nov 20, 2024 |
---|---|
2.1.0-rc |
|
2.0.0 | Nov 25, 2023 |
1.2.0 |
|
1.0.2 |
|
#39 in Windows APIs
485 downloads per month
39KB
887 lines
Printers
Printers is a simple lib to call printers apis for unix (cups) and windows (winspool) systems.
Printers can provide a list of printers available on the system and send print jobs to them
Behavior
Return a vector of all available printers
let printers = get_printers(); // -> Vec<Printer>
Create print job of an byte array
let data = "42".as_bytes();
printer.print(data); // -> Result<(), &'static str>
Create print job of an file
let path = "my_file/example/path.txt";
printer.print_file(path); // -> Result<(), &'static str>
Find printer by the name
let my_printer = get_printer_by_name("my_printer"); // -> Option<Printer>
Get the default printer
let printer = get_default_printer(); // -> Option<Printer>
Example
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("cupsPrintFile failed")
}
// 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(())
}
}
System Requirements
Windows
For Windows printers will be use winspool apis to retrive printers and create jobs with RAW datatypes
Note: For some reasons, printing for complex files like PDF, DOCx and others can`t works as well in many printers. If you want collaborate to implement winspool for printing documents, your contribution will be greatly appreciated
Unix
For Unix is necessary cups service installed