Microsoft Word VSTO加载项-替换书签而不删除书签



我正在为我们正在使用的单词模板开发Word 2010插件。我在页面中有几个书签,它们的内容可以使用插件中的各种向导进行更改。

我现在需要将图像和表格添加到书签中——这很好,但之后会立即删除书签。我正在使用以下代码,传入书签。范围作为参数。

添加表格:

bookmark.Range.Tables.Add(bookmark.Range, rowCount, columnCount, ref _objectMissing, ref _objectMissing);

添加图像:

InlineShape shape = bookmark.Range.InlineShapes.AddPicture(path, ref _objectMissing, ref _objectMissing, ref _objectMissing);

我需要能够在不删除书签的情况下完成此操作,这样,如果用户再次运行向导,我就可以返回并替换图像。任何关于如何做到这一点的想法都将不胜感激!

InlineShape和Table对象都有一个Range属性,可以用来恢复书签,如下所示:

// Keep the name of the bookmark
string bookmarkName = bookmark.Name;
// Insert your image, as before
InlineShape shape = bookmark.Range.InlineShapes.AddPicture(path, ref _objectMissing, ref _objectMissing, ref _objectMissing);
// Restore the bookmark
Object range = shape.Range;
yourDocumentVariable.Bookmarks.Add(bookmarkName, ref range);

最新更新