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§
Sourcefn load_pdf(&self, path: &Path) -> Result<CoverMedia, PdfError>
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.
Sourcefn save_pdf(&self, media: &CoverMedia, path: &Path) -> Result<(), PdfError>
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.
Sourcefn render_pages_to_images(
&self,
pdf: &CoverMedia,
) -> Result<Vec<CoverMedia>, PdfError>
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.
Sourcefn rebuild_pdf_from_images(
&self,
images: Vec<CoverMedia>,
original: &CoverMedia,
) -> Result<CoverMedia, PdfError>
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.
Sourcefn embed_in_content_stream(
&self,
pdf: CoverMedia,
payload: &Payload,
) -> Result<CoverMedia, PdfError>
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.
Sourcefn extract_from_content_stream(
&self,
pdf: &CoverMedia,
) -> Result<Payload, PdfError>
fn extract_from_content_stream( &self, pdf: &CoverMedia, ) -> Result<Payload, PdfError>
Extract a payload previously embedded in the content stream.
§Errors
Returns PdfError::ExtractFailed.
Sourcefn embed_in_metadata(
&self,
pdf: CoverMedia,
payload: &Payload,
) -> Result<CoverMedia, PdfError>
fn embed_in_metadata( &self, pdf: CoverMedia, payload: &Payload, ) -> Result<CoverMedia, PdfError>
Sourcefn extract_from_metadata(&self, pdf: &CoverMedia) -> Result<Payload, PdfError>
fn extract_from_metadata(&self, pdf: &CoverMedia) -> Result<Payload, PdfError>
Extract a payload previously embedded in XMP / document-level metadata.
§Errors
Returns PdfError::ExtractFailed.