pub(crate) mod annotations;
pub(crate) mod hierarchy;
pub(crate) mod images;
pub(crate) mod metadata;
pub(crate) mod table;
pub(crate) mod text;
use crate::Result;
use crate::error::KreuzbergError;
use std::path::Path;
pub(crate) struct OxideDocument {
pub doc: pdf_oxide::PdfDocument,
}
impl OxideDocument {
#[allow(dead_code)]
pub fn open_file(path: &Path) -> Result<Self> {
let doc = pdf_oxide::PdfDocument::open(path).map_err(|e| KreuzbergError::Parsing {
message: format!("pdf_oxide: failed to open file: {e}"),
source: None,
})?;
Ok(Self { doc })
}
pub fn open_bytes(bytes: &[u8]) -> Result<Self> {
let doc = pdf_oxide::PdfDocument::from_bytes(bytes.to_vec()).map_err(|e| KreuzbergError::Parsing {
message: format!("pdf_oxide: failed to load bytes: {e}"),
source: None,
})?;
Ok(Self { doc })
}
}