保存文件
参考图和以下步骤说明了在 KLINOFFICE 文档中保存文档的过程。

用户在文档编辑器中编辑文档。
文档编辑器将更改发送到文档编辑服务。
用户关闭文档编辑器。
文档编辑服务监视文档工作的结束,并将文档编辑器发送的更改收集到一个文档中。
文档编辑服务使用来自JavaScript API的callbackUrl通知文档存储服务文档编辑结束,并返回修改后文档的链接。
文档存储服务从文档编辑服务下载所有已保存更改的文档文件并将其存储。
如何在实践中做到这一点
创建一个回调处理程序以保存来自文档编辑服务的文档。
创建一个html文件来打开文档。
在文档编辑器初始化的配置脚本中,使用参数行中的回调处理程序指定文件的 URL。使用本地链接时,请务必添加令牌。否则会出现错误。
const config = { document: { fileType: "docx", key: "Khirz6zTPdfd7", title: "Example Document Title.docx", url: "https://example.com/url-to-example-document.docx", }, documentType: "word", editorConfig: { callbackUrl: "https://example.com/url-to-callback.ashx", }, token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkb2N1bWVudCI6eyJmaWxlVHlwZSI6ImRvY3giLCJrZXkiOiJLaGlyejZ6VFBkZmQ3IiwidGl0bGUiOiJFeGFtcGxlIERvY3VtZW50IFRpdGxlLmRvY3giLCJ1cmwiOiJodHRwczovL2V4YW1wbGUuY29tL3VybC10by1leGFtcGxlLWRvY3VtZW50LmRvY3gifSwiZG9jdW1lbnRUeXBlIjoid29yZCIsImVkaXRvckNvbmZpZyI6eyJjYWxsYmFja1VybCI6Imh0dHBzOi8vZXhhbXBsZS5jb20vdXJsLXRvLWNhbGxiYWNrLmFzaHgifX0.vbezS2aM8Xf8qFzIAsO-jrIsi7VLxjRYkIkwh5jLTJU", }; const docEditor = new DocsAPI.DocEditor("placeholder", config);其中example.com是安装了文档管理器和文档存储服务的服务器的名称。
在浏览器中打开您的html文件并编辑您的文档。
关闭文档编辑器。在大约 10 秒内查看您的文档。所有更改应该都被保存了,这意味着配置正确。
保存延迟
文档编辑完成后,文档编辑服务会将它通知给文档存储服务。完成之前的时间是根据编辑文件到 Office Open XML 格式的转换时间(取决于文件大小、复杂性和计算机能力,并且可以执行相当长的时间)和转换开始延迟来计算时间(默认为 5 秒)。在最常见的情况下,编辑完成后的时间约为 10 秒。
转换开始延迟对于允许在不保存文件的情况下返回文件编辑会话是必要的,例如在打开文件进行编辑的情况下重新加载浏览器页面时。默认转换开始延迟时间由services.CoAuthoring.server.savetimeoutdelay参数在KLINOFFICE 文档配置文件中定义
如果要更改它,可以使用local.json文件,该文件应存储所有已编辑的参数。此文件与default.json文件位于同一目录中,并且必须保留必要参数的完整对象结构(请参见下面的示例)。
| 参数 | 类型 | 示例 | 描述 |
|---|---|---|---|
| services.CoAuthoring.server.savetimeoutdelay | integer | 5000 | 定义关闭编辑的文件后的转换开始延迟时间(以毫秒为单位)。 |
强制保存
文档编辑服务允许在编辑完成之前获取当前文档状态。该过程在 KLINOFFICE 文档中称为forcesave。文档编辑服务向回调处理程序执行请求url参数的值为文档链接,status参数的值为6。可以通过以下方式启动强制保存过程:
通过将c参数的值设置为forcesave,向文档命令服务发送请求。将请求发送到回调处理程序时,forcesavetype参数的值为0。
启用editorConfig.customization.forcesave模式,在编辑器初始化配置中将其设置为true。在这种情况下,每次用户点击保存按钮时,forcesave 都会完成,并且当将请求发送到回调处理程序时,forcesavetype参数的值为1。
您可以在KLINOFFICE 文档附加配置文件中启用开始重复强制保存,参数
| 参数 | 类型 | 示例 | 描述 | | :--- | :--- | :--- | :--- | | services.CoAuthoring.autoAssembly.enable | boolean | false | 定义是否启用自动强制保存。默认值为false。 | | services.CoAuthoring.autoAssembly.interval | string | 5m | 定义启动自动强制保存的间隔时间(分钟)。 |
示例 local.json 配置
{ "services": { "CoAuthoring": { "autoAssembly": { "enable": true, "interval": "5m" } } } }将请求发送到回调处理程序时,forcesavetype参数的值为2。
请注意,您无法在文档历史记录中看到使用强制保存选项创建的文档版本。原因是 KLINOFFICE 文档突出显示了从当前文档会话开始而不是从文档版本开始时所做的更改。即使在一个会话中创建了多个文档版本,此会话中的所有更改也将突出显示。
以原始格式保存
assemblyFormatAsOrigin服务器设置默认启用,以便将组装好的文件保存为其原始格式。它用于将文件格式从 OOXML 更改为 ODF 或使用宏保存文件。
参数
services.CoAuthoring.server.assemblyFormatAsOrigin
指定组装好的文件是否以原始格式保存。
此参数的工作原理如下:
- 编辑器始终返回 OOXML 格式的文件。
- 如果 assemblyFormatAsOrigin 参数设置为 true,编辑器会尝试将文件转换为原始格式。
- 如果原始格式是旧的(例如 doc)并且转换回旧格式失败,则会引发*回滚以保存对 ooxml 的更改警告,并且文件将转换回 OOXML 格式。
- 如果 assemblyFormatAsOrigin 参数设置为 false,编辑器不会将文件转换为原始格式并以 OOXML 格式返回。
默认值为 true
默认值为 true
类型: boolean
示例: true
示例 local.json 配置
{
"services": {
"CoAuthoring": {
"server": {
"assemblyFormatAsOrigin": true
}
}
}
}