主题
性能实测
以下均为单机实测值(未做系统化基准测试),用于量级参考而非承诺。
兼容性矩阵(73 样例)
对 73 份真实样例(数科电子发票、发票监制章、非标命名空间、国标原文等)逐份执行七项功能:
| 功能 | 通过率 |
|---|---|
| info(元信息) | 73/73 |
| list(包内文件) | 73/73 |
| render(渲染 ≤12 页) | 73/73(165 张 PNG 产出) |
| verify(原签名校验) | 73/73 |
| sign + verify(签名回环) | 73/73 |
| encrypt + decrypt(加密回环) | 73/73 |
| decrypt 字节一致性 | 73/73 |
网页 vs 原生:逐像素一致性
examples/node-demo/parity-check.mjs:WASM 渲染与原生 CLI 渲染的 PNG 逐像素比对。
| 最近一次 | 结果 |
|---|---|
| 6 个样例 | 6/6 差异 0.000% |
这是「同一渲染内核」架构的直接证据——不是「看起来一样」,是字节级一样。
WASM 资源体积
| 资源 | 原始 | gzip -9 后 |
|---|---|---|
ofd_wasm_bg.wasm(渲染内核,0.11.0,含 JPX/JPEG2000 渲染解码) | 3.46 MB | ≈1.19 MB |
| 中文回退字体(思源宋体 GB2312 子集 TTF,站点自备) | ≈3 MB | ≈1.9 MB |
另有转换模块(0.11.0 约 4.59 MB / gzip ≈1.65 MB,含 JPEG2000 原生解码)与工具模块(约 2.15 MB / gzip ≈0.76 MB,含表单填写、手写墨迹注释与 OFD 加解密,不含 JPX),按需懒加载。渲染内核自 v0.10.0 起 vendor openjpeg 支持渲染方向 JPX 图像;不需要时可在构建侧关闭 ofd-render 的 jpx feature 减小体积。
部署建议:为 .wasm/.ttf 开启 gzip/brotli 预压缩(gzip_static/brotli_static),带 hash 的静态资源配置长缓存(immutable,wasm 固定文件名的缓存配套);回退字体懒加载(首次打开文件时)。在线演示站已实现加载全过程的逐块进度可视化。
转换耗时
| 样本 | 页数 | 原生 CLI | 浏览器 WASM |
|---|---|---|---|
| GB/T 42133-2022 国标原文 | 14 | 0.47s | ~1s |
首次加载
演示站首次访问需下载渲染内核 + 回退字体(合计约 6MB 原始 / 约 3MB gzip),二次访问命中浏览器缓存即瞬时可用。慢网络下的体验:所有大资源下载均有进度条与资源名提示(用户明确要求的核心体验)。