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

时间:2019-02-05 13:43:15

标签: ms-word office-js office-js-helpers

让我简要介绍一下情况:

  • 我们有base64编码的.docx文件。
  • 我们的Word加载项有一个 我们要求内部API获得base64编码的功能 .docx文件。
  • 此base64编码的.docx文件(具有页眉,页脚 和正文)使用Word加载项加载到MS Word中。
  • 问题是 文档正文已完美加载,但页眉和页脚却没有 在MS Word中加载。
  • 上面用于执行的
  • Office JS API是 Document.Body.insertFileFromBase64()。

使用适当的屏幕截图说明了步骤:

步骤1 创建一个带有页眉和页脚详细信息的示例数据文档,如屏幕快照所示。  enter image description here

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

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

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

3.3如下面的屏幕截图所示,页眉和页脚均消失,MS Word中仅加载了正文。 enter image description here

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

请对此提供帮助,因为我们在应用程序中处于生产问题的阻止状态。

1 个答案:

答案 0 :(得分:2)

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

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

将文件插入到现有文档中后,将自动执行 操作,而无需最后一个默认的分节符(链接到最后一个段落标记)。传入的内容具有目标节的节属性。这样可以减少页眉和页脚。

可以的作用是在插入文档的末尾插入分节符,然后再插入该分节符,并确保为 that 部分定义了页眉和页脚。此额外的分节符将导入到现有文档中,并保留页眉和页脚。

如果应保留目标文档中现有的页眉和页脚,则事情将变得更加复杂。在这种情况下,目标文档中需要附加的分节符,以便“保留”那些页眉和页脚。根据插入的顺序,可能还需要附加的分节符,以确保页眉和页脚的内容彼此独立(默认情况下,将它们链接,以便每个后续节“继承”。

另一种方法是Office JS代码使用JS API提取页眉和页脚信息,并将其分别写入目标文档中。