Crate pdfcat

Crate pdfcat 

Source
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.

Constants§

NAME
Library name.
VERSION
Library version.