0

我正在尝试将 OpenXML word 文档嵌入到另一个 OpenXML word 文档中,它正在创建损坏的文件。我已经查看了这篇文章 http://blogs.msdn.com/b/brian_jones/archive/2009/06/30/embedding-an-open-xml-file-in-another-open-xml-file.aspx这个堆栈溢出帖子在另一个 OpenXml 文档中嵌入一个 OpenXML 文档,我想我正在按照说明进行操作,但我没有得到相同的结果。

我的代码看起来像这样。

foreach (KeyValuePair<string, byte[]> docKV in files)
            {
                var embeddedPackagePart = document.MainDocumentPart.AddNewPart<EmbeddedPackagePart>("application/vnd.openxmlformats-officedocument.wordprocessingml.document", "rfp" + docKV.key);
                var stream = new MemoryStream(docKV.Value);
                embeddedPackagePart.FeedData(stream);
                stream.Close();
}

所以基本上我正在遍历存储在字典中的文件列表并嵌入每个文件。我删除了创建实际 OpenXML 标记以链接到嵌入对象以尝试缩小错误范围的代码。据我所知,实际嵌入是造成问题的原因。

我还使用 OpenXML SDK Productivity 工具打开了生成的文档,但它缺少我在手动嵌入文件的文档中看到的嵌入部分。

对我做错了什么有任何想法吗?

4

2 回答 2

0

您可以阅读合并文字处理文档。示例代码也可用。

于 2012-05-08T13:39:59.307 回答
0

我弄清楚了这个问题。在处理 WordprocessingDocument 之前,我没有调用 WordprocessingDocument.Close。如果要添加新的文档部分,则必须调用 Close() 才能将其写入底层流。

于 2012-05-09T16:11:05.733 回答