前端渲染引擎
引擎模块
10.0 起前端渲染引擎按模块按需加载。首次加载主模块 gsdk.wasm(基础 PDF 能力,含密文编辑)。比较、高级编辑、动态 XFA 等能力在使用时再加载对应的侧模块。
32 位与 64 位目录里各有一套同名模块。位数选择见 32 位与 64 位。文件如何压缩与缓存见 最佳实践 · wasm 模块的传输压缩。
| 模块名 | 功能 | 依赖 |
|---|---|---|
| gsdk.wasm | 基础 PDF 功能,以及密文编辑(Redact)。 | 无 |
| compare.wasm | 叠印对比(Overlay Compare)。 | lr.wasm |
| pageeditor.wasm | 高级段落编辑器。 | lr.wasm |
| touchup.wasm | 高级编辑器中的编辑文本、添加文本。 | lr.wasm |
| xfa.wasm | 动态 XFA 表单。 | lr.wasm |
| 3d.wasm | PDF 中 3D 内容的显示和交互。 | 无 |
| optimizer.wasm | 数字图章、扁平化等。 | 无 |
| lr.wasm | 布局识别引擎。被依赖它的模块触发时加载。 | 无 |
| Pageformat.wasm | 页眉页脚、水印。 | 无 |
| docprocess.wasm | 表单识别。 | 无 |
32 位与 64 位
12.0 起提供 64 位与 32 位两套前端渲染引擎。未设置配置项 jr.wasm64 时,SDK 按浏览器是否支持 WebAssembly Memory64 自动选择其一。不支持 Memory64 的浏览器使用 32 位引擎。
处理页数多、资源占用高的 PDF 时,32 位 WebAssembly 线性内存容易成为瓶颈,因此支持 Memory64 的浏览器会加载 64 位引擎。
位数和引擎根目录都写在 PDFViewCtrl.PDFViewer 的构造参数 jr 上。使用 UIExtension.PDFUI 时,同一组参数写在 viewerOptions.jr 上。
指定位数
省略 jr.wasm64 时按上一节自动选择。需要固定位数时:
javascript
const pdfViewer = new PDFViewCtrl.PDFViewer({
jr: {
wasm64: true // true 为 64 位,false 为 32 位
}
});
javascript
const pdfui = new UIExtension.PDFUI({
viewerOptions: {
jr: {
wasm64: false
}
}
});
jr.enginePath 指向 jr-engine/gsdk(相对 libPath 时的默认值)。SDK 再按 wasm64 进入 64 或 32 子目录,不要把 enginePath 指到这两个子目录本身。
资源目录
64 位与 32 位资源分别位于:
jr-engine/gsdk/64jr-engine/gsdk/32
自托管时请同时部署这两个目录。只部署其中一种时,把 jr.wasm64 设为对应的 true 或 false,并保证该子目录下的文件齐全。各模块的作用见 引擎模块。
WASM 文件以普通 *.wasm 提供,压缩由文件服务器按 Accept-Encoding 完成。见 最佳实践 · 前端渲染引擎 wasm 模块的传输压缩。
升级注意
从 11.1 升级时,若站点只部署了旧的单一引擎目录,自动选择 64 位后会找不到 gsdk/64 下的文件。请按上一节补齐目录,或用 jr.wasm64 固定为已部署的那一种。