VSTO:将多个部分粘贴到Word文档会生成幻像宏

时间:2009-05-13 13:51:04

标签: .net ms-word vsto

我有一些VSTO代码,它通过复制和粘贴源文档中的选定部分来生成Word 2003文档:

    Dim doc = Globals.ThisDocument.Application.Documents.Add(DocumentType:=Word.WdNewDocumentType.wdNewBlankDocument, Visible:=False)
    For Each sectionNumber As Integer In requiredSections
        sourceDoc.Sections(sectionNumber).Range.Copy()
        doc.Bookmarks("\endofdoc").Range.Paste()
    Next
    doc.SaveAs(FileName:=(fileName), FileFormat:=(format), LockComments:=False, Password:="", AddToRecentFiles:=False)
    doc.Close(SaveChanges:=False)

这很好用,但是当我打开生成的文档时,我会得到宏安全警告对话框(或者在设计模式下打开文档,具体取决于设置)。我根本看不到文档中的任何宏,例如使用Word中的宏管理器。

这导致的真正问题是,如果宏安全性设置为“高”,它会阻止shell的打印工作(代码在指定了Print动词的文档上调用Process.Start,这是首选打印机制,因为它适用于许多文档类型)。

奇怪的是,如果将多个部分粘贴到目标文档,则只会出现问题。

有人有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

两个小时,没有人为我完成我的工作; - )

为了防止其他人遇到这个问题,我最终通过将文档保存为RTF来解决这个问题,因此没有宏,并且shell打印顺利运行。

现在我屏息等待有人报告Word RTF输出中的限制。