Skip to main content

Crate pdfluent

Crate pdfluent 

Source
Expand description

§PDFluent — Pure-Rust PDF SDK

pdfluent is the public API for the PDFluent SDK. It provides a single, coherent entry point for PDF manipulation: loading, editing, rendering, merging, signing, encryption, redaction, PDF/A compliance, and more.

§Quick start

use pdfluent::prelude::*;

fn main() -> Result<()> {
    let mut doc = PdfDocument::open("invoice.pdf")?;
    doc.metadata_mut()
        .set_title("Processed Invoice")
        .commit()?;
    {
        let mut form = doc.form_mut();
        form.set_text("invoice_number", "INV-2026-0042")?
            .set_checkbox("paid", true)?;
    }
    doc.compress(CompressOptions::strict())?;
    doc.save("invoice-processed.pdf")?;
    Ok(())
}

§Licensing

Provide a license key via any of (highest precedence first):

  1. OpenOptions::with_license_key — per-document override.
  2. license::set_license_key — process-global.
  3. PDFLUENT_LICENSE_KEY environment variable.

Without a license the SDK runs in Tier::Trial mode: all capabilities accessible, output marked via /Producer metadata.

§Design foundation

The public API is frozen per RFC 0001 (see docs/rfc/0001-sdk-core-api.md). Breaking changes require a new RFC.

Re-exports§

pub use crate::capability::Capability;
pub use crate::capability::CapabilitySet;
pub use crate::compliance::PdfAProfile;
pub use crate::compliance::PdfAValidationReport;
pub use crate::compliance::Violation;
pub use crate::decoration::PageDecoration;
pub use crate::document::OpenOptions;
pub use crate::document::Page;
pub use crate::document::Pages;
pub use crate::document::PdfDocument;
pub use crate::document::PdfVersion;
pub use crate::document::SaveOptions;
pub use crate::document::TextBlock;
pub use crate::encrypt::EncryptOptions;
pub use crate::encrypt::EncryptionAlgorithm;
pub use crate::encrypt::Permissions;
pub use crate::error::Error;
pub use crate::error::Result;
pub use crate::form::FieldType;
pub use crate::form::FormField;
pub use crate::form::PdfFormMut;
pub use crate::license::license_info;
pub use crate::license::set_license_key;
pub use crate::license::LicenseInfo;
pub use crate::merger::BookmarkMergeStrategy;
pub use crate::merger::MergeOptions;
pub use crate::merger::PdfMerger;
pub use crate::metadata::Metadata;
pub use crate::metadata::MetadataMut;
pub use crate::parity::CompressOptions;
pub use crate::parity::CompressReport;
pub use crate::parity::FontSubsetReport;
pub use crate::parity::ImageFormat;
pub use crate::parity::ImageInsert;
pub use crate::parity::ImageInsertReport;
pub use crate::parity::InsertImageFormat;
pub use crate::parity::ToImagesOptions;
pub use crate::parity::ToImagesReport;
pub use crate::redact::RedactOptions;
pub use crate::signer::PadesProfile;
pub use crate::signer::PdfSigner;
pub use crate::signer::Pkcs12Signer;
pub use crate::signer::SignOptions;
pub use crate::signer::SignatureInfo;
pub use crate::signer::SignatureStatus;
pub use crate::signer::SignatureValidation;
pub use crate::signer::SignatureValidationReport;
pub use crate::tier::Tier;
pub use crate::watermark::Layer;
pub use crate::watermark::Position;
pub use crate::watermark::Rotation;
pub use crate::watermark::WatermarkOptions;

Modules§

async_ioasync-tokio
Async I/O wrappers via Tokio’s blocking pool. Async I/O wrappers built on Tokio.
capability
Capability enumeration.
compliance
PDF/A compliance types.
decoration
Unified page-decoration surface (Epic 3 #1225).
document
PdfDocument and lifecycle types.
encrypt
Encryption, decryption, and permissions.
error
Error types for pdfluent.
form
Form field reading and mutation.
license
License provisioning and capability enforcement.
merger
PdfMerger — factory builder for merging multiple PDF documents.
metadata
Document metadata (Info dict + XMP).
parity
Options and reports for Epic 3 #1224 parity methods.
prelude
Convenient re-exports for common pdfluent usage.
redact
Redaction options.
signer
Digital signature types.
tier
License tiers and the tier → capability mapping.
watermark
Watermarking options.

Functions§

api_version
The SDK version at compile time. Bindings check this at runtime to ensure compatibility with the loaded pdfluent dynamic library.