Expand description
pdfcat - Concatenate PDF files into a single document.
This library provides functionality for merging multiple PDF files while preserving quality, structure, and metadata. It supports:
- High-quality PDF merging
- Page extraction and manipulation
- Bookmark creation
- Metadata management
- Parallel processing
- Comprehensive error handling
§Examples
§Basic Merge
use pdfcat::merge;
use pdfcat::config::{Config, CompressionLevel, Metadata, OverwriteMode};
use std::path::PathBuf;
let config = Config {
inputs: vec![PathBuf::from("a.pdf"), PathBuf::from("b.pdf")],
output: PathBuf::from("merged.pdf"),
dry_run: false,
verbose: false,
overwrite_mode: OverwriteMode::Prompt,
quiet: false,
bookmarks: true,
compression: CompressionLevel::Standard,
metadata: Metadata::default(),
continue_on_error: false,
jobs: None,
page_range: None,
rotation: None,
};
let (document, stats) = merge::merge_pdfs(&config).await?;
println!("Created {} page document", stats.total_pages);§Using Individual Components
use pdfcat::io::{PdfReader, PdfWriter};
use pdfcat::validation::Validator;
use std::path::PathBuf;
// Validate input
let validator = Validator::new();
let result = validator.validate_file(&PathBuf::from("input.pdf")).await?;
println!("PDF has {} pages", result.page_count);
// Load PDF
let reader = PdfReader::new();
let loaded = reader.load(&PathBuf::from("input.pdf")).await?;
// Save PDF
let writer = PdfWriter::new();
writer.save(&loaded.document, &PathBuf::from("output.pdf")).await?;Re-exports§
pub use config::Config;pub use error::PdfCatError;pub use error::Result;
Modules§
- config
- Configuration module for pdfcat.
- error
- Error types for pdfcat.
- io
- I/O operations for pdfcat.
- merge
- PDF merging operations.
- output
- Output formatting and display for pdfcat.
- utils
- Utilities for path collection, PDF merge helpers, etc.
- validation
- Input validation for pdfcat.