Skip to main content

ReadingOrderMode

Enum ReadingOrderMode 

Source
pub enum ReadingOrderMode {
    TopToBottomLeftToRight,
    ColumnAware,
    StructureTreeFirst {
        mcid_order: Vec<u32>,
    },
}
Expand description

Reading order determination mode for text blocks.

Determines how text blocks are ordered when converting to output formats.

Variants§

§

TopToBottomLeftToRight

Simple top-to-bottom, left-to-right ordering.

Sorts all blocks by Y coordinate (top to bottom), then by X coordinate (left to right). This works well for single-column documents.

§

ColumnAware

Column-aware reading order.

Uses the XY-Cut algorithm to detect columns and determines proper reading order across multiple columns. This works better for multi-column documents.

§

StructureTreeFirst

Structure tree first, with fallback to column-aware.

For Tagged PDFs: Uses the PDF logical structure tree (ISO 32000-1:2008 Section 14.7) to determine reading order via Marked Content IDs (MCIDs). This is the PDF-spec-compliant approach and provides perfect reading order for Tagged PDFs.

For Untagged PDFs: Falls back to ColumnAware (XY-Cut algorithm).

This mode requires passing MCID reading order through ConversionOptions.mcid_order.

Fields

§mcid_order: Vec<u32>

Reading order as a sequence of MCIDs from structure tree traversal. If empty, falls back to ColumnAware mode.

Trait Implementations§

Source§

impl Clone for ReadingOrderMode

Source§

fn clone(&self) -> ReadingOrderMode

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ReadingOrderMode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for ReadingOrderMode

Source§

fn eq(&self, other: &ReadingOrderMode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for ReadingOrderMode

Source§

impl StructuralPartialEq for ReadingOrderMode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Ungil for T
where T: Send,