跳到主要内容

文档比对API前端SDK集成方式

在已完成前端 SDK 集成对接的前提下,Filez 文档中台支持通过前端 SDK 集成方式调用文档比对 API

描述:文档对比 API 用于对比两个内容相似的文字文档的差别。用户需要提供两个内容相似的文字文档,例如文档 A 和文档 B。对比结果以 HTML 页面形式提供,页面中展示原文档、对比文档及其差异。

使用方式:业务系统前端调用 ZOfficeSDK.mount(initConfig, container),在挂载容器中展示对比结果页面。其中 meta.idmetaB.id 分别为文档 A、文档 B 在业务系统中的 ID(meta.id 对应展示页中的原文档,metaB.id 对应展示页中的比对文档)。

注意:

  1. 文档比对 API 只有用户完成前端 SDK 集成在线编辑对接后,才能调用。
  2. 相应的参数参考前端 SDK 集成配置签名

在常规前端 SDK initConfig 基础上,文档比对需额外补充 metaBrepoConfig.downloadUrlB,并将 openConfig.action 设为 comparemetaB 结构同 meta,说明参见配置 - meta 说明

参数名是否必选描述
userinfo进行操作的用户信息,说明见配置 - userinfo
meta文档 A 的元信息。meta.id 为原文档 ID
metaB文档 B 的元信息,结构与 meta 相同。metaB.id 为对比文档 ID
openConfig.action标识打开文档的行为,取值 compare
repoConfig.downloadUrl下载 docA 文件流的地址。
downloadUrl 与管理控制台中该应用配置的接口地址前缀的 host 必须一致。host 包含 hostname 和端口。如果 downloadUrl 中的 host 不带端口,相关配置也不要带端口,即使是缺省端口
repoConfig.downloadUrlB下载 docB 文件流的地址。规则同 repoConfig.downloadUrl
repoConfig.params回调三方接口时回传的业务参数,说明见配置 - repoConfig.params
token由业务系统后端使用集成密钥签名的 JWT。签名载荷须包含 userinfometametaBopenConfigrepoConfig(含 downloadUrldownloadUrlB

集成示例

<!DOCTYPE html>
<html style="height: 100%;">
<head>
<meta charset="UTF-8" />
<title>FrontSDK Document Compare</title>
<script src="sdk.js"></script>
<style>
html, body { height: 100%; margin: 0; padding: 0; overflow: hidden; }
</style>
</head>
<body>
<div id="frameholder" style="height: 100%;"></div>
<script>
// TODO: 由业务系统后端生成并返回
const initConfig = {
userinfo: { id: "user", display_name: "user", email: "user@example.com" },
meta: {
id: "docAId",
name: "contract-v1.docx",
modified_at: "2025-11-18T10:41:52.12Z",
created_by: { id: "user", name: "user", email: "user@example.com" },
permissions: { read: true, write: false }
},
metaB: {
id: "docBId",
name: "contract-v2.docx",
modified_at: "2025-11-20T08:15:30.00Z",
created_by: { id: "user", name: "user", email: "user@example.com" },
permissions: { read: true, write: false }
},
repoConfig: {
id: "repoId",
downloadUrl: "http://my.integration.com/v2/context/docAId/content",
downloadUrlB: "http://my.integration.com/v2/context/docBId/content",
params: { "x-param-1": "aaa" }
},
openConfig: { action: "compare" },
documentServerAddr: "http://zoffice_hostname:8001/docs",
token: "YOUR_SIGNED_JWT_TOKEN"
};

ZOfficeSDK.mount(initConfig, "#frameholder");
</script>
</body>
</html>
大小边界

当前仅支持 doc / docx 文档,大小不超过 50M。仅支持对比三方仓库中已存在的两个远程文件,downloadUrldownloadUrlB 不能相同。