在 Word Javascript API 中调用 context.application.createDocument 时出现 GeneralException
Posted
技术标签:
【中文标题】在 Word Javascript API 中调用 context.application.createDocument 时出现 GeneralException【英文标题】:GeneralException when context.application.createDocument is called in Word Javascript API 【发布时间】:2018-08-15 15:47:44 【问题描述】:背景
目前我正在开发一个 Word 加载项,它使用 Office 的新 javascript API。该插件由一些基本功能和一个数字模板组成。客户的愿望之一是从功能区打开模板。目前我有一个命令加载项下拉菜单,其中每个下拉菜单项都引用加载项函数文件中的一个函数。这些函数依次调用一些 Word Javascript API 方法,从 .docx 文件中读取并打开 base64 字符串。
问题
打开简单的文件没有任何问题,但是包含图像、内容控件等的更复杂的文件会失败。更复杂的文件会引发“GeneralException”。 this issue 的作者声明它与文档中包含的图像有关。但是,这与我的个人经历不符。可以添加图像,并且文档仍处于打开状态。所以我认为文档的其他部分可能会引发问题,但我不确定!
因此,我想知道是否有人能够进一步阐明这个问题。
代码
Word.run(function(context)
let letterTemplate = context.application.createDocument(<base64string>);
letterTemplate.open();
return context.sync().then(function ()
console.log("success");
)
.catch(function (error)
console.log(error);
)
);
欢迎任何帮助、提示或建议。
编辑:发现问题
经过一些实验,我得出以下结论。每当将(在本例中为富文本)内容控件添加到文档的标题时,就无法使用方法context.application.createDocument
打开它。尝试这样做将导致“GeneralException”,它确实提供了任何特定信息。我怀疑这是 Office Javascript API 中的一个错误。
【问题讨论】:
【参考方案1】:如果你在做word online那么请检查你的base64是否大于4M。目前大于 4M 的 base64 将失败并出现 GeneralException。我们正在积极改进限制。
【讨论】:
很遗憾,我没有使用 Word Online。但是我发现了一个问题,当一个内容控件被添加到一个文档的头部时,这个文档是不能用context.application.createDocument
方法打开的。
我们也体验过。 Word版本似乎是相关的。在每月频道中,createDocument 方法有效,但在 Insider 版本(1803、1804)中,createDocument 方法会引发一般异常以上是关于在 Word Javascript API 中调用 context.application.createDocument 时出现 GeneralException的主要内容,如果未能解决你的问题,请参考以下文章
Office.js/Word Javascript API 中的 insertOoxml 方法中的错误
WebAPP,API调用Excel, Word,Bartender等DCOM, VS调试没问题,发布到IIS出错