标签: word-addins

将自定义唯一 ID 分配给 Word 2013 OpenXML 元素

TLDR/问题

如何最好地将唯一 ID 分配给描述 Word 文档的 XML 中的(最好是所有)元素,以便我可以从 Word (2013) 加载项读取/写入这些唯一 ID?

此外,描述如何获得两个 Word 文档的良好差异的解决方案可能会有所帮助,但这不是主要问题。

背景

我正在使用 VSTO 创建 Word (2013) 的应用程序级加载项。我的部分任务涉及将原始 Word 文档W与修改后的文档进行比较W',以便我可以为另一项任务处理该差异。虽然 Word 显然具有差异/合并功能(可在 Word 2013 的“审阅”面板中找到),但到目前为止,我还没有找到一种以编程方式提取差异的方法。

因此,我计划获取文档的 XML(例如使用Range.WordOpenXML)并比较它们。有许多已发布的用于比较 XML 文档(即Diff(W.XML, W'.XML))的算法,其中比较的准确性在很大程度上取决于是否能够正确匹配两个文档中的 XML 元素。

建议的解决方案及其问题

因此,我希望能够为可以从加载项访问的 Word 文档的 XML 中的每个元素分配一个唯一的 ID。在这种情况下,解决方案类似于将自定义命名空间导入到名为的包中,并为 DOCX 包中的每个元素mynamespace添加属性。mynamespace:ID=***然后可以通过 访问该属性Range.WordOpenXML

但是,只需使用 mce:Ignorable、mce:ProcessContent 和 mce:PreserveAttributes,详见http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2012/09/21/markup-compatibility-and-extensibility.aspx不起作用。修改后的 Word 文档加载没有任何问题,但我似乎找不到任何属性,另外保存文档会删除所有添加的标记。

http://openxmldeveloper.org/discussions/formats/f/13/p/8078/163573.aspx看来,通过 Office Open XML 标准的标记兼容性和扩展性 (MCE) 部分使用自定义 xml 的过程已多年来变得复杂(专利问题等)。因此,我猜测我的问题的出现是因为 Word …

ms-word openxml office-addins word-2013 word-addins

5
推荐指数
1
解决办法
1058
查看次数

Word 用 Ja​​vaScript 添加 Ins,paragraph.getHtml() 方程转换为图像

我正在创建一个单词插件,我想在其中获取带有图像的 html 形式的 ms word 内容。paragraph.getHtml() 返回的 html 具有图像/方程的 <img> 标签,但我无法获取该图像。


// Run a batch operation against the Word object model.
Word.run(function(context) {
    // Create a proxy object for the paragraphs collection.
    var paragraphs = context.document.body.paragraphs;

    // Queue a command to load the style property for all of the paragraphs.
    context.load(paragraphs, "style");

    // Synchronize the document state by executing the queued commands,
    // and return a promise to indicate task completion.
    return context.sync().then(function() {
      // Queue a a set of …
Run Code Online (Sandbox Code Playgroud)

ms-word word-addins office-js

5
推荐指数
0
解决办法
270
查看次数

MS Office 更新到版本 13628.20274 后 Word 加载项出现问题

我的 Word 插件有问题。这不起作用。经过一番调查,我发现这个问题是在Office更新后出现的。我的意思是在旧版本的 MS Word 中使用 Internet Explorer。但更新后引擎是 Microsoft Edge Legacy。另外,我现在已经有了基于 Chromium 的新 Microsoft Edge。

那么接下来的问题是,有没有办法让我的 MS Word 使用基于 Chromium 的 Microsoft Edge,而不是 Microsoft Edge Legacy?

另外:在我的研究中,我依赖于此链接中的数据: https://learn.microsoft.com/ru-ru/office/dev/add-ins/concepts/browsers-used-by-office-web-add- ins 也尝试安装 WebView2 但没有帮助。MD Office 的当前版本:13628.20274 Word 的当前版本:16.0.13628.20234

如果您提供与我的问题相关的任何信息,我将不胜感激。提前致谢,祝你有美好的一天))

在此输入图像描述

ms-word office365 word-addins office-js

5
推荐指数
1
解决办法
512
查看次数

System.Drawing.Graphics 中的 IntPtr.Zero 是什么意思

我需要在下面的函数中获得 IntPtr.Zero 的确切含义。我使用此函数将 word 文档文本范围位置像素值转换为 WPF 单位值。

Graphics g = Graphics.FromHwnd(IntPtr.Zero)
Run Code Online (Sandbox Code Playgroud)

这通常说通过句柄,但我没有得到它。

.net c# winapi intptr word-addins

4
推荐指数
1
解决办法
1522
查看次数

如何为Word文档加载项创建AfterSave事件

我是这个外接程序编程的新手。我的要求是我想为c#中的Word文档添加AfterSave事件。我已经创建了Application_DocumentBeforeSave事件,但是我想要文档After Save事件。

谁能帮我解决这个问题。

提前致谢..

c# office-addins word-addins

3
推荐指数
1
解决办法
786
查看次数

将 Document.getFileAsync 数据转换为 FormData 以进行 Office 文件上传

我正在开发 Office 加载项项目,我需要获取当前的 Office 文件并上传到我们的服务器。以下是将文件从文件浏览器上传到我们的服务器

var fdata = new FormData();
fdata.append('data', file);
fdata.append('totalFileSizeBytes', file.size);
fdata.boundary = '----boundary';

xhr.send(fdata);
Run Code Online (Sandbox Code Playgroud)

我通过函数获取 Office 文件信息: Document.getFileAsync (https://dev.office.com/reference/add-ins/shared/document.getfileasync

但我不知道如何将文件信息从 Document.getFileAsync 转换为 FormData。我尝试逐片读取文件信息,然后连接到一个数组并传递给 FormData,但没有成功。

ms-office visual-studio excel-addins word-addins office-js

3
推荐指数
1
解决办法
1072
查看次数

Word中的上下文菜单添加Ins

我正在为Microsoft Word开发一个Add In.我期待添加自定义上下文菜单.在Word文档中使用上下文菜单是否可行?

office-addins word-addins office-js

2
推荐指数
1
解决办法
779
查看次数

使用 JavaScript API 添加合并字段

我想将 JavaScript API 中的合并字段 ( <<xyz>>) 插入到单词表中。但是,我无法找到 Office Word 加载项的 JavaScript API。

ms-word office-addins word-field word-addins office-js

2
推荐指数
1
解决办法
1732
查看次数

自定义功能区 XML 选项卡未显示在 WORD VSTO 加载项中

我按照这个MSDN 教程创建了一个WORD 2010 VSTO 插件选项卡。我正在使用VS2015 Community Edition. 当我在 Visual Studio 中运行该应用程序时,它会打开 Word 文档,但 Tab 未显示在 WORD 中(如 turorial 的测试步骤所述)。所以,我无法测试插件。

但是,我可以在 WORD 的 COM Add-Ins 窗口中看到上述 AddIn 已启用 - 如下图所示。另外,当我在下面的过程中放置​​断点时,我可以看到这个过程被成功调用。注意:我通过复制/粘贴代码、项目名称等来逐字逐句地遵循教程。因此,我没有对教程进行任何更改。

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
     return new MyRibbon();
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

更新MyRibbon.xml如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  <ribbon>
    <tabs>
      <tab idMso="TabAddIns">  
        <group id="ContentGroup" label="Content">  
            <button id="textButton" label="Insert Text"  
                 screentip="Text" onAction="OnTextButton"  
                 supertip="Inserts text at the cursor location."/>  
            <button id="tableButton" label="Insert Table"  
                 screentip="Table" …
Run Code Online (Sandbox Code Playgroud)

vsto ms-word visual-studio-2015 word-addins

0
推荐指数
1
解决办法
2426
查看次数