pub trait DocumentSource: Send + Sync {
// Required methods
fn page_count(&self) -> usize;
fn page_dimensions(&self, page_index: usize) -> PageDimensions;
fn render_page(
&self,
page_index: usize,
target_size: RenderSize,
) -> Result<RenderedPage, DocumentError>;
fn embedded_metadata(&self) -> Option<EmbeddedMetadata>;
fn outline(&self) -> Option<Vec<OutlineEntry>>;
}Expand description
Abstraction over document sources.
Implementations provide page geometry, rendering, embedded metadata, and outline data without exposing renderer-specific details to the engine or UI.
Required Methods§
Sourcefn page_count(&self) -> usize
fn page_count(&self) -> usize
Total number of pages in the document.
Sourcefn page_dimensions(&self, page_index: usize) -> PageDimensions
fn page_dimensions(&self, page_index: usize) -> PageDimensions
Dimensions of a specific page (in points).
Sourcefn render_page(
&self,
page_index: usize,
target_size: RenderSize,
) -> Result<RenderedPage, DocumentError>
fn render_page( &self, page_index: usize, target_size: RenderSize, ) -> Result<RenderedPage, DocumentError>
Render a page to an RGBA bitmap at the specified target size.
Sourcefn embedded_metadata(&self) -> Option<EmbeddedMetadata>
fn embedded_metadata(&self) -> Option<EmbeddedMetadata>
Extract embedded metadata (pdfpc-compatible), if present.
Sourcefn outline(&self) -> Option<Vec<OutlineEntry>>
fn outline(&self) -> Option<Vec<OutlineEntry>>
PDF outline/bookmark entries, if present.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".