c# 书签 .zip 文件嵌入对象

c# bookmark .zip file embedded object

我想将 zip 文件添加到嵌入了书签的 word 文档中。 我可以添加 .pdf、.doc、.txt 或 .xls 文件,但无法将 .zip 文件添加到我的 word 文档中。我怎样才能做到这一点?是class类型问题吗?

 Bookmark bmEmbedded = doc.Bookmarks["ek10"];
                                bmEmbedded.Select();
                                object classType = "Word.Document.12";

                                if (uzanti.Contains(".doc")) classType = "Word.Document.15";
                                else if (uzanti.Contains(".xls")) classType = "Excel.Sheet";
                                else if (uzanti.Contains(".txt")) classType = "Text Document";
                                **else if (uzanti.Contains(".msg")) classType = "Outlook.Item";**
                                else if (uzanti.Contains(".pdf") || uzanti2.Contains(".pdf")) classType = "AcroRd32.Document";


                                    wordApp.Selection.Range.InlineShapes.AddOLEObject(ClassType: classType, FileName: embeddedFilePath2, DisplayAsIcon: true, LinkToFile: false, IconFileName: labelControl64.Text);

为了将文件嵌入到 Word 文档中,需要 OLE Server。这些是在注册表中作为特定文件类型的 OLE 服务器列出的应用程序。 Excel,例如,注册为 xlsx 个文件的 OLE 服务器。

如果没有可用的 OLE 服务器 Word 可以 将文件作为通用文件嵌入 "Package"。不过以后能否成功"unpacked"还不确定。

要确定嵌入任何类型文件所需的代码,最可靠的方法是在Word中插入文件时录制宏。在我的机器上,如果我嵌入一个 zip 文件,记录的代码是:

    Selection.InlineShapes.AddOLEObject ClassType:="CompressedFolder", _
      fileName:="C:\Test\CalcIfFields.docx.zip", LinkToFile:=False, _
      DisplayAsIcon:=False

我不知道这是否适用于您的环境...