Skip to main content

Module layers

Module layers 

Source
Expand description

PDF Optional Content (layers).

Layers — formally Optional Content Groups (OCGs) in ISO 32000-2 §8.11 — let a PDF mark slices of its content for selective visibility: CAD layers, watermarks, multilingual annotations, print-only or screen-only overlays, and so on.

This module exposes the read-only metadata side of the OCG model:

  • One Layer per OCG, carrying the layer’s name, intent, lock state, default visibility, full /Usage sub-dict, and any /CreatorInfo hint.

Hierarchy (/Order), alternate configurations, runtime visibility overrides, OCMD policies, and /AS automatic-state rules land in later phases. Phase 1 is just the per-layer record so consumers can enumerate what a document contains.

§Quick reference

use stet_pdf_reader::PdfDocument;

let data = std::fs::read("layered.pdf")?;
let doc = PdfDocument::from_bytes(&data)?;

for layer in doc.layers() {
    println!(
        "{} (id={}, locked={}, default_visible={})",
        layer.name, layer.ocg_id, layer.locked, layer.default_visible
    );
}

Re-exports§

pub use configuration::AutoStateEvent;
pub use configuration::AutoStateRule;
pub use configuration::BaseState;
pub use configuration::Configuration;
pub use configuration::LayerTree;
pub use configuration::LayerTreeNode;
pub use configuration::ListMode;
pub use metadata::CreatorInfo;
pub use metadata::ExportUsage;
pub use metadata::LanguageUsage;
pub use metadata::Layer;
pub use metadata::LayerIntent;
pub use metadata::LayerUsage;
pub use metadata::PageElementSubtype;
pub use metadata::PrintUsage;
pub use metadata::UsageState;
pub use metadata::UserUsage;
pub use metadata::ViewUsage;
pub use metadata::ZoomUsage;

Modules§

configuration
Optional Content Group hierarchy and configurations.
metadata
Per-layer metadata (Optional Content Groups).
ocmd
Optional Content Membership Dictionary (OCMD) parsing.

Structs§

LayerSet
Per-render override of OCG visibility.

Enums§

MembershipPolicy
/P policy on an OCMD.
OcgVisibility
Visibility predicate for an DisplayElement::OcgGroup.
RenderIntent
Which audience a render is for.
VisibilityExpr
Boolean visibility expression from an OCMD /VE array.

Functions§

layer_set_for
Build a LayerSet that reflects the document’s default configuration with every /AS automatic-state rule for the given RenderIntent applied.
layer_set_from_configuration
Build a LayerSet populated from one of the document’s alternate configurations (/OCProperties /Configs).
layer_set_from_document
Build a LayerSet populated from a PdfDocument’s default configuration (/OCProperties /D).