语境
我正在使用 JavaScript API for Office (v 1.1) 编写 Office Word 任务窗格插件。
我的系统:
- 微软视窗 8.1
- Microsoft Visual Studio 2015 社区
- 适用于 Office 的最新 Visual Studio 工具
- Microsoft Office Word Service Pack 1(桌面)
问题
我面临的问题是将打开的文档保存在客户端机器中。我已经搜索了信息,但仍然没有成功...
我想知道是否有办法从 JavaScript API 保存 Word 文档,Office.Context.Document 中只有几个方法:
代码
我写了一个解决方案,但我不喜欢通过创建 Word.Application Activex 来保存文档的方式:
$scope.saveDocument = function (draft) {
// Draft is a part of the window title
// Example :
// ----------
// If word window title shows "B0306-000-2012.docx - Word",
// draft could be "B0306-000-2012"
try {
var Word = new ActiveXObject("Word.Application");
if (Word) {
var spanish = Word.Language == 3082;
var Tasks = Word.Tasks;
for (var i = 0; i < Tasks.Count; i++) {
var Task = Tasks.Item(i + 1);
if (Task.Visible && Task.Name.indexOf(draft) >= 0) {
var shell = new ActiveXObject("WScript.Shell");
var activated = shell.AppActivate(Task.Name, 2000); //Espera 2 segundos para activar la aplicación
shell.SendKeys(spanish ? "^g" : "^s", 3000); //Envía el comando Ctrl + (G / S) según el idioma de la aplicación y espera 3 segundos a que Word guarde el documento
break;
}
}
Word.Quit();
}
return true;
} catch (e) {
$OfficeApp.showModal("No se pudo guardar el documento", "Error: " + e.message);
return false;
}
};
问题
关于如何直接使用 JavaScript API 保存文档的任何建议?