#printing #print #cups #winspool

printers

一个用于在Unix和Windows上获取打印机和打印文件的库

2 个稳定版本

2.0.0 2023年11月25日
1.2.0 2023年2月9日
1.1.0 2022年12月2日
1.0.2 2022年8月23日

#46 in Windows API

Download history 58/week @ 2024-04-21 68/week @ 2024-04-28 69/week @ 2024-05-05 51/week @ 2024-05-12 30/week @ 2024-05-19 32/week @ 2024-05-26 58/week @ 2024-06-02 25/week @ 2024-06-09 14/week @ 2024-06-16 18/week @ 2024-06-23 20/week @ 2024-06-30 15/week @ 2024-07-07 15/week @ 2024-07-14 62/week @ 2024-07-21 46/week @ 2024-07-28 35/week @ 2024-08-04

159 每月下载量

MIT 许可证

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