在Word的VSTO加载项中粘贴WMF图像(选择当前文档)



我正在vb.net中创建一个VSTO Word插件,将图像粘贴为windows图元文件(而不是Word 2010中默认的增强图元文件)。我以前在VBA中用代码完成过这项工作

Selection.PasteSpecial datatype:=wdPasteMetafilePicture

我正在寻找的资源和帮助

  1. 获取Word文档中光标的位置(选择)
  2. 检查图像是否为特定类型(在本例中为WMF)
  3. 在选定位置将图像粘贴到文档

如果您能提供任何帮助/链接,我们将不胜感激!

---编辑---

我已经能够成功地粘贴一个windows元文件图像,但我不确定如何选择当前文档。我可以用一个新文档创建一个新的word应用程序对象,然后将图像粘贴到其中,但我似乎无法选择已经打开的word实例。请参阅下面的代码(注意,我尝试过oWord=GetObject(,"Word.Application"),但没有成功)

    Dim oWord As Word.Application
    Dim oDoc As Word.Document
    Dim objDataTypeMetafile As New Object
    objDataTypeMetafile = Word.WdPasteDataType.wdPasteMetafilePicture
    oWord = CreateObject("Word.Application")
    oWord.Visible = True
    oDoc = oWord.Documents.Add
    oWord.Selection.PasteSpecial(, , , , objDataTypeMetafile, , )
    oWord = Nothing
    oDoc = Nothing

将oWord声明为Glocals.ThisAddIn.Application就是诀窍。现在效果很好。

    Dim oWord As Word.Application = Globals.ThisAddIn.Application
    Dim objDataTypeMetafile As New Object
    objDataTypeMetafile = Word.WdPasteDataType.wdPasteMetafilePicture
    oWord.Visible = True
    oWord.Selection.PasteSpecial(, , , , objDataTypeMetafile, , )
    oWord = Nothing

最新更新