主题
Rust 核心(仅介绍)
本页只做架构介绍,不提供 Rust 演示程序或使用教程——按项目决策,Rust API 层不对外开放示例。需要用一凡OFD 的能力请走 WASM(浏览器 / Node 全功能出口)。
workspace 组成
13 个库 crate,单一职责、分层清晰:
| crate | 一句话职责 | 关键依赖 |
|---|---|---|
ofd-core | 国标数据模型(CT_*/ST_*)+ XML 序列化 + ZIP 容器 + 文本/图像提取 | quick-xml 0.38、zip 6.0 |
ofd-font | 字型解析、TrueType 子集化(GB/T 42133)、GBK/CID 映射 | ttf-parser 0.25、encoding_rs |
ofd-jpx | JPX/JPEG2000 解码(vendor openjpeg 2.5.3 静态链入;转换端与渲染端共用) | openjpeg(vendored C) |
ofd-render | 双后端渲染:tiny-skia 位图 + Canvas 指令流 | tiny-skia 0.11、image 0.25 |
ofd-convert | PDF ↔ OFD 双向转换:pdf-rs 解析 + 内容流重建 + 文本双模式;OFD→PDF 经 pdf-writer 写出 | pdf 0.10、pdf-writer 0.13 |
ofd-sign | 签名/验签/电子签章:SM3withSM2、SES v1/v4、X.509 链 | libsm 0.6、der 0.7、x509-parser |
ofd-crypto | SM4-CBC 内容加密 + SM2 数字信封(GM/T 0099 风格) | libsm 0.6 |
ofd-tool | 文档合并(ID 重映射)、文字/图像水印、页面操作(抽取/删除/拆分/旋转)、高层生成 API | ofd-core |
ofd-archive | OFD-A 合规检查(GB/T 42133 九条规则)与去技术化 | ofd-core |
ofd-ffi | C ABI 动态库(cdylib + include/ofd.h) | ofd-core/render/sign/convert |
ofd-wasm | wasm-bindgen 绑定 · 核心模块(解析/渲染/文本/验签/授权) | wasm-bindgen、serde-wasm-bindgen |
ofd-wasm-convert | WASM 转换模块(PDF↔OFD 双向,按需加载,独立授权) | 复用 ofd-convert |
ofd-wasm-tool | WASM 工具模块(合并/拆分/旋转/水印/生成/注释/OFD/A,按需加载,独立授权) | 复用 ofd-tool/archive |
另含 cli/(ofd-cli)与 bindings/(python/csharp/java)。
转换质量评测(pdf2ofd)
PDF→OFD 以评测驱动开发:仓库内置 1018 份公开 PDF 语料(corpus/,覆盖中文正文、嵌入子集字体、扫描件、表单、注释、加密等矩阵),配套评测脚本 scripts/pdf2ofd-eval.py(转换成功率 / SSIM 视觉还原 / 文本层保留三指标)与商业化达标线(docs/business/pdf2ofd-商业化达标线.md)。当前全量口径(2026-10-08,随 v0.6.0 内核,含 JPX 真解码):成功率 98.1%(19 份加密/损坏语料为预期失败)、panic 0。
依赖关系
text
ofd-core ──→ ofd-render ──┐
│──→ ofd-font ─────────┤
│──→ ofd-tool ├──→ ofd-ffi / ofd-wasm* / cli / bindings
│──→ ofd-archive │
│──→ ofd-sign ─────────┤
│──→ ofd-convert ──────┘
└──→ ofd-crypto(经 cli 与 wasm 工具模块暴露)
ofd-jpx ←── ofd-convert(必选)/ ofd-render(feature="jpx" 门控,可关减 wasm 体积)工程约定
- workspace 单一版本(0.11.0)、edition 2021、rust-version 1.75、专有商业许可(闭源,见根目录
LICENSE) - release profile:
lto = true、opt-level = 3、strip = true - 测试以 crate 内联
#[cfg(test)]为主(391 项,另含确定性变异模糊回归),另以 OFD 兼容样例与corpus/语料评测驱动回归 - 构建环境(无 VS 安装的 Windows):MSVC link.exe + xwin SDK(
build-env.sh)