pub struct StructElement {
pub element_type: String,
pub mcids: Vec<u32>,
pub alt_text: Option<String>,
pub actual_text: Option<String>,
pub lang: Option<String>,
pub bbox: Option<BBox>,
pub children: Vec<StructElement>,
pub page_index: Option<usize>,
}Expand description
A node in the PDF structure tree.
Represents a logical structure element from a tagged PDF’s /StructTreeRoot.
Each element has a type (e.g., “H1”, “P”, “Table”), optional marked content
identifiers (MCIDs) linking it to page content, and optional child elements
forming a tree structure.
§Tagged PDF Support
Tagged PDFs (ISO 32000-1, Section 14.8) embed semantic structure that is critical for accessibility and increasingly important for AI/LLM document understanding. The structure tree maps logical elements (headings, paragraphs, tables) to their visual representation on the page via MCID references.
§Example
use pdfplumber_core::StructElement;
let heading = StructElement {
element_type: "H1".to_string(),
mcids: vec![0],
alt_text: None,
actual_text: Some("Chapter 1".to_string()),
lang: Some("en".to_string()),
bbox: None,
children: vec![],
page_index: Some(0),
};
assert_eq!(heading.element_type, "H1");
assert_eq!(heading.mcids, vec![0]);Fields§
§element_type: StringThe structure type name (e.g., “Document”, “H1”, “P”, “Table”, “TR”, “TD”, “L”, “LI”, “Span”, “Figure”).
mcids: Vec<u32>Marked content identifiers linking this element to page content. Each MCID corresponds to a marked-content sequence in a page’s content stream.
alt_text: Option<String>Alternative text for accessibility (from /Alt entry).
actual_text: Option<String>Replacement text for the element’s content (from /ActualText entry).
lang: Option<String>Language of the element’s content (from /Lang entry, e.g., “en-US”).
bbox: Option<BBox>Bounding box of the element, if available.
children: Vec<StructElement>Child structure elements forming the tree hierarchy.
page_index: Option<usize>Page index (0-based) this element belongs to, if determinable.
Trait Implementations§
Source§impl Clone for StructElement
impl Clone for StructElement
Source§fn clone(&self) -> StructElement
fn clone(&self) -> StructElement
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more