Skip to main content

PdfDocument

Struct PdfDocument 

Source
pub struct PdfDocument { /* private fields */ }

Implementations§

Source§

impl PdfDocument

Source

pub fn open(data: impl Into<Arc<[u8]>>) -> Result<Self>

Source

pub fn open_with_limits( data: impl Into<Arc<[u8]>>, limits: ParseLimits, ) -> Result<Self>

Source

pub fn open_with_password( data: impl Into<Arc<[u8]>>, password: &[u8], ) -> Result<Self>

Open an encrypted document with a user or owner password. Returns zpdf_core::Error::WrongPassword when the password authenticates as neither. (A non-encrypted document opens regardless of the password.)

Source

pub fn open_with_password_and_limits( data: impl Into<Arc<[u8]>>, password: &[u8], limits: ParseLimits, ) -> Result<Self>

Source

pub fn is_encrypted(&self) -> bool

True when the document is encrypted (carries an /Encrypt dictionary).

Source

pub fn page_count(&self) -> usize

Source

pub fn page(&self, index: usize) -> Result<PdfPage>

Source

pub fn file(&self) -> &PdfFile

Source

pub fn version(&self) -> (u8, u8)

Source

pub fn page_content_bytes(&self, page: &PdfPage) -> Result<Vec<u8>>

Get decoded content stream bytes for a page.

Source

pub fn load_page_fonts(&self, page: &PdfPage) -> FontCache

Load all fonts referenced by a page.

Source

pub fn page_annotations(&self, page: &PdfPage) -> Vec<Annotation>

Parse a page’s annotations into renderable form (/Rect, /F, the /AS-selected appearance stream, /OC membership). Widget annotations for interactive-form fields gain a generated appearance when the producer left none (or set /NeedAppearances).

Source

pub fn acro_form(&self) -> Option<&AcroForm>

The document’s interactive form (/AcroForm), if any. Parsed once and cached for the lifetime of the document.

Source

pub fn oc_config(&self) -> Option<OcConfig>

The document’s default optional-content configuration, if any.

Source

pub fn output_intents(&self) -> Vec<OutputIntent>

The document-level output intents (catalog /OutputIntents). Empty when the document declares none. Page-level intents (PDF 2.0) are carried on the page and read via PdfDocument::page_output_intents.

Source

pub fn page_output_intents<'a>(&self, page: &'a PdfPage) -> &'a [OutputIntent]

PDF 2.0 page-level /OutputIntents, which override the document-level intents for that page. Empty for pre-2.0 / most documents.

Source

pub fn embedded_files(&self) -> Vec<EmbeddedFile>

The document’s embedded files — file streams registered in the catalog’s /Names /EmbeddedFiles name tree (a viewer’s “attachments”). Empty when the document carries none. Pull a file’s bytes with PdfDocument::embedded_file_bytes.

Source

pub fn associated_files(&self) -> Vec<EmbeddedFile>

Catalog-level associated files (/Root /AF, PDF 2.0). Each carries an /AFRelationship. Per PDF 2.0 these are also listed by PdfDocument::embedded_files; the two lists usually overlap.

Source

pub fn page_associated_files(&self, page: &PdfPage) -> Vec<EmbeddedFile>

Page-level associated files (/Page /AF, PDF 2.0) for one page. /AF is not inheritable, so only the leaf page dictionary is consulted.

Source

pub fn embedded_file_bytes(&self, file: &EmbeddedFile) -> Result<Vec<u8>>

Decode and return the bytes of an embedded file. Routes through the parser’s filter pipeline, so it respects ParseLimits (max stream size). Errors if the file specification carries no embedded stream (EmbeddedFile::is_embedded is false).

Source

pub fn outline(&self) -> Vec<OutlineItem>

The document outline (bookmarks) from the catalog’s /Outlines, as a nested tree of OutlineItem. Each item’s /Dest or go-to /A is resolved to a Destination; URI / remote-go-to targets are captured as strings. Empty when the document has no outline.

Source

pub fn named_destination(&self, name: &[u8]) -> Option<Destination>

Resolve a named destination (from a named-destination string/name) to a Destination. Tries the /Names /Dests name tree and the legacy /Root /Dests dictionary. None when the name is unknown.

Source

pub fn resolve_destination(&self, dest: &PdfObject) -> Option<Destination>

Resolve any destination value — an explicit [page /Fit …] array, a named-destination name/string, a << /D … >> dictionary, or an indirect reference to one — to a Destination. This is what a /Dest entry or a go-to action’s /D carries; useful for resolving link-annotation targets. None when it does not name a destination.

Source

pub fn info(&self) -> Option<DocInfo>

The document information dictionary (/Info): title, author, subject, keywords, creator/producer, and creation/modification dates (raw PDF date strings). None when the document carries no /Info or it is empty.

Source

pub fn page_labels(&self) -> Option<PageLabels>

The document’s page labels (/PageLabels, ISO 32000-1 §12.4.2): the number tree mapping page indices to the printed labels a viewer shows and a user navigates by — e.g. lowercase-roman front matter (i, ii, …) then decimal body (1, 2, …), or a prefixed appendix (A-1, A-2, …). These are distinct from the physical 0-based page indices. None when the document declares no page labels. Query a page with PageLabels::label.

Source

pub fn xmp_metadata(&self) -> Option<XmpMetadata>

The document’s XMP metadata (/Metadata, ISO 32000-1 §14.3.2): the common Dublin Core / XMP / PDF-schema properties (title, authors, description, keywords, producer, creator tool, dates), read with a bounded scrape (no XML engine; entity-expansion-safe). None when the document carries no /Metadata or none of the recognized properties. PDF 2.0 prefers this over the /Info dictionary (PdfDocument::info).

Source

pub fn metadata_bytes(&self) -> Option<Vec<u8>>

The raw bytes of the catalog’s /Metadata XMP packet (decoded through the filter pipeline, respecting ParseLimits), for callers that want to parse the RDF/XML themselves. None when the document carries no /Metadata.

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, 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> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more