2 个稳定版本
2.0.0 | 2023年11月25日 |
---|---|
1.2.0 | 2023年2月9日 |
1.1.0 |
|
1.0.2 |
|
#46 in Windows API
159 每月下载量
24KB
453 行
Printers
Printers 不是一个用于打印机驱动程序或cups的库。Printers是一个简单的库,用于调用Unix (cups) 和Windows (winspool) 系统的打印机API。
打印机可以提供系统上可用的打印机列表,并执行文档打印。
行为
返回一个可用打印机的向量
printers::get_printers() -> Vec<Printer>
写入后请求打印临时文件
printers::print(Printer, &[u8]) -> Job
printer.print(&[u8]) -> Job
请求从路径中打印特定文件
printers::print_file(Printer, &str) -> Job
printer.print_file(&str) -> Job
尝试通过名称获取并返回单个打印机
printers::get_printer_by_name(&str) -> Option<Printer>
注意:get_printer_by_name是一个简单的实用工具,此函数仅对get_printers()的结果应用过滤器。它们将在未来得到改进,以提高性能
示例
use printers;
fn main() {
// Vector of system printers
let printers = printers::get_printers();
// Print directly in all printers
for printer in printers.clone() {
println!("{:?}", printer);
let status1 = printer.print("42".as_bytes(), Some("Everything"));
println!("{:?}", status1);
// Note: When you don't give the job_name
// the file path will be that name by default
let status2 = printer.print_file("/path/to/any.file", None);
println!("{:?}", status2);
}
// Print directly by printer name
printers::print("printer-a", "42".as_bytes(), Some("Everything"));
printers::print_file("printer-b", "/path/to/any.file", Some("My Job"));
// Try printer by name
let test_printer = printers::get_printer_by_name("test");
println!("{:?}", test_printer);
}
系统要求
Windows
对于Windows,将使用winspool API来检索打印机和PowerShell来将文档发送到打印机
注意:由于一些复杂的原因,打印操作仍然使用PowerShell执行。如果您想合作实现winspool以打印文档,您的贡献将非常受欢迎
Unix
对于Unix,必须安装cups服务
依赖项
~43KB