Expand description
docparser PDF 后端:pdfium-worker(PDFium 常驻 worker 线程 + 通道请求/响应)。
架构(发布形态 06 + PDF_TODO“native 调用进 worker 线程“):
- 一条 worker 线程独占持有
Pdfium(含裸指针,非 Sync),进程内只此一处 native 状态;能力对象经mpsc通道发路径、收RawDoc——避开了在 trait 对象里持有 Pdfium 的 Send/Sync 困境,也与 Python 参考实现的 PDF-0.1 语义对齐。 - 逐文本对象抽取 text + bbox(pt,左上原点),支持 CJK CID 字体(PDFium 内建 CMap,不依赖 ToUnicode)——解决 pdf-extract v1 的中文盲区。
- 错误分类:ENCRYPTED / CORRUPT。
- 兜底后端
pdfium-text-v1(pdf-extract,纯 Rust):worker 缺失或解析失败时 按 BackendPolicy 链回退(encrypted/unsupported 为终止码,不回退)。
Structs§
- PdfPlugin
- PdfText
Backend - 兜底后端 v1:pdf-extract(纯 Rust,无 dylib;CJK 无 ToUnicode 局限)。
- Pdfium
Worker Backend - 主后端:PDFium worker(库可用才 available)。
Functions§
- find_
library - 运行时 PDFium 库发现:
DOCPARSER_PDFIUM_LIB→ 开发环境 pypdfium2 自带 → 无。 - find_
ocr_ binary - find_
ocr_ models - is_
terminal - 便于外部核对终止码语义。
- register_
defaults - 注册 PDF 后端(worker 可用才注册;v1 恒可用)与插件。