easypdf-markdown 0.1.1

Deterministic PDF to Markdown conversion for easypdf-rust (includes render, table detection, and OCR)
Documentation
//! PDF 到 Markdown 的可插拔语义处理器。

use easypdf_core::PdfDocumentModel;
use easypdf_core::PdfInput;
use easypdf_core::Result;

use crate::{MarkdownProcessorCapabilities, MarkdownWarning};

/// 在基础文本提取之后、Markdown 渲染之前增强语义文档模型。
///
/// 实现可对接表格检测、图片提取、页面渲染 OCR 或领域专用结构识别。
/// 处理器接收原始输入描述和上一个处理器产出的模型,并返回新的模型;
/// 因而多个处理器可按注册顺序确定性组合,且无需让核心 crate 依赖具体 OCR/AI SDK。
pub trait PdfMarkdownProcessor: Send + Sync {
    /// 返回处理器能够真正提供的能力。
    fn capabilities(&self) -> MarkdownProcessorCapabilities {
        MarkdownProcessorCapabilities::new()
    }

    /// 增强语义模型并返回本处理器产生的非致命警告。
    ///
    /// # Errors
    ///
    /// 后端无法读取输入或无法完成声明的处理时返回错误。
    fn process(
        &self,
        input: &PdfInput,
        document: PdfDocumentModel,
    ) -> Result<(PdfDocumentModel, Vec<MarkdownWarning>)>;
}