使用 OfficeJS 加载 base64 编码的 .docx 文件时无法加载页眉和页脚 API

Not able to load header and footer when loading base64 encoded .docx file using OfficeJS API

让我简要介绍一下场景:

使用正确的屏幕截图解释了步骤:

步骤1 创建一个带有页眉和页脚详细信息的示例数据文档,如屏幕截图所示。

步骤 – 2 获取上述.docx文件的Base64编码文件字符串。

步骤 – 3 我们已经创建了一个 angular js 1.7 和 angular 6 Office JS 加载项应用程序,它接受 .docx base64 编码的文件字符串并将该文件加载到 MS Word 中。 3.1 Angular6 Office JS Add-in应用程序如下:

3.2 我们将步骤2中的base64编码文件字符串输入到我们开发的自定义Word插件中显示的文本框中。单击加载文件按钮时,我们的加载项会从 base64 编码的字符串中加载实际文件。

3.3 如下截图所示,在MS Word中页眉页脚消失,​​只加载正文。

3.4 Office JS API 用于开发的自定义 Word 加载项是 context.Document.Body.insertFileFromBase64(, ) Office JS API CDN:https://appsforoffice.microsoft.com/lib/1/hosted/Office.js

请帮助解决这个问题,因为我们的应用程序处于生产问题的阻止状态。

这是由于 Word 的设计工作方式所致。

页眉和页脚是 节级 属性 - 它们链接到分节符。默认情况下,Word 文档有一个分节符,默认的页眉和页脚属于分节符。

将文件插入现有文档时,没有最后一个默认分节符(链接到最后一个段落标记)。传入内容采用目标部分的部分属性。这将切断页眉和页脚。

可以的工作是在插入文档的末尾插入一个分节符,在插入之前,确保为 [=22= 定义了页眉和页脚]那个部分。此附加分节符将导入现有文档并保留页眉和页脚。

如果要保留目标文档中现有的页眉和页脚,事情会变得更加复杂。在这种情况下,目标文档中需要一个额外的分节符,以便 "hold" 这些页眉和页脚。根据插入的顺序,可能还需要额外的分节符以确保页眉和页脚的内容相互独立(默认情况下它们是 链接 以便每个上一节的后续部分 "inherits")。

另一种方法是让 Office JS 代码使用 JS API.

获取页眉和页脚信息并将其分别写入目标文档。