rpdfium-doc 7676.6.4

Document-level features for rpdfium
Documentation
#![forbid(unsafe_code)]
#![doc = "Document-level features for rpdfium — a faithful Rust port of PDFium."]
//!
//! This crate provides document structure types and parsers for PDF features
//! beyond individual page content:
//!
//! - **Name trees** and **number trees** — generic sorted-key lookup structures
//! - **Bookmarks** (outlines) — the hierarchical table of contents
//! - **Document metadata** — title, author, dates from the `/Info` dictionary
//! - **Destinations** and **actions** — navigation targets and interactive behaviors
//! - **Page labels** — custom page numbering (roman, alphabetic, prefixed)
//! - **Annotations** — interactive elements on pages (links, highlights, stamps, etc.)

pub mod aaction;
pub mod action;
pub mod annot_list;
pub mod annotation;
pub mod annotation_appearance;
pub mod ap_settings;
pub mod ba_font_map;
pub mod bookmark;
pub mod bookmark_tree;
pub mod catalog;
pub mod default_appearance;
pub mod destination;
pub mod error;
pub mod fdf;
pub mod file_spec;
pub mod form_control;
pub mod form_field;
pub mod generate_ap;
pub mod icon_fit;
pub mod interactive_form;
pub mod javascript;
pub mod link;
pub mod link_list;
pub mod metadata;
pub mod name_tree;
pub mod number_tree;
pub mod page_label;
pub mod signature;
pub mod struct_element;
pub mod struct_tree;
pub mod variable_text;
pub mod viewer_preferences;
pub mod xmp;

// Re-export key types at the crate root.
pub use aaction::{AActionType, AdditionalActions, parse_additional_actions};
pub use action::{Action, ActionChain, ActionType, parse_action_chain};
pub use annot_list::{
    annot_get_form_field_at_point, annotation_at_point, find_parent_annotation, parse_annotations,
};
#[allow(deprecated)]
pub use annot_list::{get_annotation_at_point, get_form_field_at_point};
pub use annotation::{
    Annotation, AnnotationBorder, AnnotationFlags, AnnotationSubtypeData, AnnotationType,
    AppearanceMode, BorderStyle, PdfValueType,
};
pub use annotation_appearance::AnnotationAppearance;
pub use ap_settings::{IconProperties, MkDict, parse_icon_properties, parse_mk_dict};
pub use ba_font_map::{BaFontMap, BaFontMapEntry, parse_default_appearance_font};
#[allow(deprecated)]
pub use bookmark::get_bookmark_by_title;
pub use bookmark::{Bookmark, find_bookmark, next_sibling_bookmark};
pub use bookmark_tree::parse_bookmarks;
#[allow(deprecated)]
pub use catalog::get_pdf_form_type;
pub use catalog::{PageMode, PdfFormType, get_form_type, is_tagged, page_mode, pdf_form_type};
pub use destination::{Destination, PageFit, collect_named_destinations, parse_destination};
pub use error::{DocError, DocResult};
pub use fdf::{FdfData, export_fdf, import_fdf};
pub use file_spec::{
    FileSpec, collect_attachments, decode_filename, encode_filename, parse_file_spec,
};
pub use form_control::{FormControl, HighlightingMode, TextPosition};
pub use form_field::{ChoiceOption, FieldValue, FormField, FormFieldFlags, FormFieldType};
pub use generate_ap::{generate_annot_ap, generate_annotation_appearance, generate_empty_ap};
pub use icon_fit::{IconFit, ScaleMethod};
pub use interactive_form::InteractiveForm;
pub use javascript::{JavaScriptAction, collect_javascript_actions};
pub use link::{Link, parse_link};
pub use link_list::{
    HitTestResult, LinkObject, collect_links, find_link_at_position, link_at_point, link_enumerate,
    link_get_link_at_point,
};
#[allow(deprecated)]
pub use link_list::{enumerate, enumerate_links, get_link_at_point};
pub use metadata::{DocumentMetadata, parse_metadata};
pub use name_tree::NameTree;
pub use number_tree::NumberTree;
pub use page_label::{PageLabel, PageLabelStyle, format_label, parse_page_labels};
pub use signature::{DocMdpPermission, SignatureObject, collect_signatures};
pub use struct_element::{AttributeValue, StructAttribute, StructElement};
pub use struct_tree::{
    ElementsForPage, McidMapping, PageStructure, StructTree, find_elements_for_mcid,
};
pub use variable_text::{
    Alignment, Line, LineInfo, Section, VariableText, VtFontProvider, VtIterator, VtWordIterator,
    Word, WordInfo, WordPlace, WordRange,
};
pub use viewer_preferences::{DuplexMode, ReadingDirection, ViewerPreferences};
pub use xmp::{SharedFormType, XmpMetadata, check_for_shared_form};