Skip to content

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-jpxJPX/JPEG2000 解码(vendor openjpeg 2.5.3 静态链入;转换端与渲染端共用)openjpeg(vendored C)
ofd-render双后端渲染:tiny-skia 位图 + Canvas 指令流tiny-skia 0.11、image 0.25
ofd-convertPDF ↔ 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-cryptoSM4-CBC 内容加密 + SM2 数字信封(GM/T 0099 风格)libsm 0.6
ofd-tool文档合并(ID 重映射)、文字/图像水印、页面操作(抽取/删除/拆分/旋转)、高层生成 APIofd-core
ofd-archiveOFD-A 合规检查(GB/T 42133 九条规则)与去技术化ofd-core
ofd-ffiC ABI 动态库(cdylib + include/ofd.h)ofd-core/render/sign/convert
ofd-wasmwasm-bindgen 绑定 · 核心模块(解析/渲染/文本/验签/授权)wasm-bindgen、serde-wasm-bindgen
ofd-wasm-convertWASM 转换模块(PDF↔OFD 双向,按需加载,独立授权)复用 ofd-convert
ofd-wasm-toolWASM 工具模块(合并/拆分/旋转/水印/生成/注释/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)

最后更新:

专有软件 · 商业授权(闭源)