pub struct PdfDocument { /* private fields */ }Implementations§
Source§impl PdfDocument
impl PdfDocument
pub fn open(data: impl Into<Arc<[u8]>>) -> Result<Self>
pub fn open_with_limits( data: impl Into<Arc<[u8]>>, limits: ParseLimits, ) -> Result<Self>
Sourcepub fn open_with_password(
data: impl Into<Arc<[u8]>>,
password: &[u8],
) -> Result<Self>
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.)
pub fn open_with_password_and_limits( data: impl Into<Arc<[u8]>>, password: &[u8], limits: ParseLimits, ) -> Result<Self>
Sourcepub fn is_encrypted(&self) -> bool
pub fn is_encrypted(&self) -> bool
True when the document is encrypted (carries an /Encrypt dictionary).
pub fn page_count(&self) -> usize
pub fn page(&self, index: usize) -> Result<PdfPage>
pub fn file(&self) -> &PdfFile
pub fn version(&self) -> (u8, u8)
Sourcepub fn page_content_bytes(&self, page: &PdfPage) -> Result<Vec<u8>>
pub fn page_content_bytes(&self, page: &PdfPage) -> Result<Vec<u8>>
Get decoded content stream bytes for a page.
Sourcepub fn load_page_fonts(&self, page: &PdfPage) -> FontCache
pub fn load_page_fonts(&self, page: &PdfPage) -> FontCache
Load all fonts referenced by a page.
Sourcepub fn page_annotations(&self, page: &PdfPage) -> Vec<Annotation>
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).
Sourcepub fn acro_form(&self) -> Option<&AcroForm>
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.
Sourcepub fn oc_config(&self) -> Option<OcConfig>
pub fn oc_config(&self) -> Option<OcConfig>
The document’s default optional-content configuration, if any.
Sourcepub fn output_intents(&self) -> Vec<OutputIntent>
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.
Sourcepub fn page_output_intents<'a>(&self, page: &'a PdfPage) -> &'a [OutputIntent]
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.
Sourcepub fn embedded_files(&self) -> Vec<EmbeddedFile>
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.
Sourcepub fn associated_files(&self) -> Vec<EmbeddedFile>
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.
Sourcepub fn page_associated_files(&self, page: &PdfPage) -> Vec<EmbeddedFile>
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.
Sourcepub fn embedded_file_bytes(&self, file: &EmbeddedFile) -> Result<Vec<u8>>
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).