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::ResourceLimitKind;
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).
diagnostics
Customer-usable diagnostics surface (M6b). Diagnostics surface (M6b).
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.

Structs§

ProcessingLimits
Re-export of pdf_engine::ProcessingLimits for use with OpenOptions::with_processing_limits. Resource limits for a single PDF processing operation.

Functions§

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