Module ashpd::desktop::print

source ·
Expand description

Print a document.

§Examples

Print a file

use std::{fs::File, os::fd::AsFd};

use ashpd::{desktop::print::PrintProxy, WindowIdentifier};

async fn run() -> ashpd::Result<()> {
    let proxy = PrintProxy::new().await?;
    let identifier = WindowIdentifier::default();

    let file =
        File::open("/home/bilelmoussaoui/gitlog.pdf").expect("file to print was not found");
    let pre_print = proxy
        .prepare_print(
            &identifier,
            "prepare print",
            Default::default(),
            Default::default(),
            None,
            true,
        )
        .await?
        .response()?;
    proxy
        .print(
            &identifier,
            "test",
            &file.as_fd(),
            Some(pre_print.token),
            true,
        )
        .await?;

    Ok(())
}

Structs§

Enums§