# mioffice-pdf-utils
Lightweight PDF utilities for Rust — merge, split, extract pages, and read metadata. Pure Rust, zero native dependencies.
Built by [MiOffice.ai](https://www.mioffice.ai) — the AI office suite where files never leave your browser.
## Install
```toml
[dependencies]
mioffice-pdf-utils = "0.1"
```
## Usage
```rust
use mioffice_pdf_utils::{merge_pdfs, split_pdf, extract_pages, get_metadata};
use std::fs;
// Merge PDFs
let pdf1 = fs::read("doc1.pdf").unwrap();
let pdf2 = fs::read("doc2.pdf").unwrap();
let merged = merge_pdfs(&[&pdf1, &pdf2]).unwrap();
fs::write("merged.pdf", merged).unwrap();
// Split into single pages
let pages = split_pdf(&fs::read("document.pdf").unwrap()).unwrap();
// Extract pages 1, 3, 5 (0-indexed)
let extracted = extract_pages(&fs::read("document.pdf").unwrap(), &[0, 2, 4]).unwrap();
// Read metadata
let meta = get_metadata(&fs::read("document.pdf").unwrap()).unwrap();
println!("Title: {:?}, Pages: {}", meta.title, meta.page_count);
```
## API
| `merge_pdfs(pdfs)` | Combine multiple PDFs into one |
| `split_pdf(pdf)` | Split into single-page PDFs |
| `extract_pages(pdf, indices)` | Extract specific pages (0-indexed) |
| `get_metadata(pdf)` | Read title, author, page count, page sizes |
## Why This Exists
[MiOffice.ai](https://www.mioffice.ai) provides 67+ file processing tools that run 100% in the browser — no uploads, no signup, no cloud. This crate extracts our PDF utilities for Rust developers who need the same capabilities.
## License
MIT — [JSVV SOLS LLC](https://www.mioffice.ai)