A Rust workspace for medium-level PDF manipulation, built on lopdf.
| Crate | Description | crates.io |
|---|---|---|
| medpdf | Medium-level PDF API -- page copying, overlays, watermarks, font handling | |
| medpdf-image | Image embedding companion -- JPEG, PNG, SVG, and more | |
| pdf-test-visual | Visual regression testing utilities (internal, not published) | -- |
[dependencies]
medpdf = "0.10.0"
medpdf-image = "0.4.1" # if you need image embeddinguse lopdf::Document;
use medpdf::{copy_page, create_blank_page, parse_page_spec, Result};
fn main() -> Result<()> {
let source = Document::load("input.pdf")?;
let mut dest = Document::with_version("1.5");
let pages = parse_page_spec("1-3,5", source.get_pages().len() as u32)?;
for page in pages {
copy_page(&mut dest, &source, page)?;
}
create_blank_page(&mut dest, 612.0, 792.0)?;
dest.save("output.pdf")?;
Ok(())
}See individual crate READMEs for detailed API documentation.
cargo build --workspace
cargo test --workspaceLicensed under either of Apache License, Version 2.0 or MIT License at your option.