docparser-pdf 0.1.0

docparser PDF 后端:PDFium 常驻 worker 逐文本对象抽取(CJK/CID 可用)+ pdf-extract 纯 Rust 兜底
Documentation

docparser-pdf

PDF 后端:PDFium 常驻 worker(一条线程独占 native 状态,通道收发)逐文本对象抽取 text + bbox,支持 CJK/CID 字体;pdf-extract(纯 Rust)作为兜底后端。

安装

cargo add docparser-pdf   # 或 cargo add docparser-sdk(含 core + office)

运行时依赖(重要)

PDFium 是运行时动态库,不由本 crate 打包。查找顺序:

  1. DOCPARSER_PDFIUM_LIB 显式指定(推荐,发布环境务必显式设置);
  2. <exe>/../lib/{libpdfium.so|libpdfium.dylib|pdfium.dll}(自包含发布布局);
  3. 开发机常见位置(pypdfium2 / liteparse 附带库)。
use docparser_core::{DocumentEngine, Registry};

let mut reg = Registry::new();
docparser_core::plugins::text::register_defaults(&mut reg);
docparser_pdf::register_defaults(&mut reg);
let doc = DocumentEngine::new(reg).parse("report.pdf")?;

docparser_pdf::find_library() / find_ocr_binary() / find_ocr_models() 可直接用于自检:

println!("{:?}", docparser_pdf::find_library());

扫描件与嵌入图 OCR

  • 纯文本层可用即不触发 OCR;稀疏/乱码页才路由到 OCR(BackendPolicy.enable_ocr)。
  • OCR 走外部可执行文件 docparser-ocr(DOCPARSER_OCR_BIN)+ 模型目录(DOCPARSER_OCR_MODELS), 缺失时降级为纯文本,不报错。
  • 嵌入图文字默认关闭,DOCPARSER_OCR_IMAGES=1 开启。

后端与错误

后端 id 形态 说明
pdfium-worker bundled 逐文本对象 + CJK CMap
pdfium-text-v1 bundled pdf-extract 兜底

encrypted / unsupported 为终止码,不回退;其余错误按策略链继续尝试。

许可

MIT OR Apache-2.0