Skip to main content

PdfProcessor

Trait PdfProcessor 

Source
pub trait PdfProcessor {
    // Required methods
    fn load_pdf(&self, path: &Path) -> Result<CoverMedia, PdfError>;
    fn save_pdf(&self, media: &CoverMedia, path: &Path) -> Result<(), PdfError>;
    fn render_pages_to_images(
        &self,
        pdf: &CoverMedia,
    ) -> Result<Vec<CoverMedia>, PdfError>;
    fn rebuild_pdf_from_images(
        &self,
        images: Vec<CoverMedia>,
        original: &CoverMedia,
    ) -> Result<CoverMedia, PdfError>;
    fn embed_in_content_stream(
        &self,
        pdf: CoverMedia,
        payload: &Payload,
    ) -> Result<CoverMedia, PdfError>;
    fn extract_from_content_stream(
        &self,
        pdf: &CoverMedia,
    ) -> Result<Payload, PdfError>;
    fn embed_in_metadata(
        &self,
        pdf: CoverMedia,
        payload: &Payload,
    ) -> Result<CoverMedia, PdfError>;
    fn extract_from_metadata(
        &self,
        pdf: &CoverMedia,
    ) -> Result<Payload, PdfError>;
}
Expand description

First-class PDF bounded context port.

Covers parsing, page rendering, content-stream LSB, and metadata embedding.

Required Methods§

Source

fn load_pdf(&self, path: &Path) -> Result<CoverMedia, PdfError>

Parse a PDF file from path into a CoverMedia.

§Errors

Returns PdfError::ParseFailed or PdfError::IoError.

Source

fn save_pdf(&self, media: &CoverMedia, path: &Path) -> Result<(), PdfError>

Serialise media back to a PDF file at path.

§Errors

Returns PdfError::RebuildFailed or PdfError::IoError.

Source

fn render_pages_to_images( &self, pdf: &CoverMedia, ) -> Result<Vec<CoverMedia>, PdfError>

Rasterise every page of pdf to a PNG CoverMedia.

§Errors

Returns PdfError::RenderFailed on any page failure.

Source

fn rebuild_pdf_from_images( &self, images: Vec<CoverMedia>, original: &CoverMedia, ) -> Result<CoverMedia, PdfError>

Reconstruct a PDF from rasterised images, retaining original metadata where possible.

§Errors

Returns PdfError::RebuildFailed.

Source

fn embed_in_content_stream( &self, pdf: CoverMedia, payload: &Payload, ) -> Result<CoverMedia, PdfError>

Embed payload via content-stream LSB coefficient modification.

§Errors

Returns PdfError::EmbedFailed.

Source

fn extract_from_content_stream( &self, pdf: &CoverMedia, ) -> Result<Payload, PdfError>

Extract a payload previously embedded in the content stream.

§Errors

Returns PdfError::ExtractFailed.

Source

fn embed_in_metadata( &self, pdf: CoverMedia, payload: &Payload, ) -> Result<CoverMedia, PdfError>

Embed payload into XMP / document-level metadata fields.

§Errors

Returns PdfError::EmbedFailed.

Source

fn extract_from_metadata(&self, pdf: &CoverMedia) -> Result<Payload, PdfError>

Extract a payload previously embedded in XMP / document-level metadata.

§Errors

Returns PdfError::ExtractFailed.

Implementors§