使用OpenXml和C#在文档之间复制图像

时间:2011-02-15 17:33:19

标签: c# openxml

我有两个文件,我需要将图片从一个文件复制到另一个文件。我无法使用altChunks,因为我需要对文件进行进一步编辑。

我尝试将图像所在的sdtBlock克隆并将其附加到其他文档中。

像..

 sdtBlock = document2.Decendants<StdBlock>.First().Clone(); //Block with image and text etc...
 WordprocessingDocument oDoc = WordprocessingDocument.Open(document1, true);
 Body body = oDoc.MainDocumentPart.Document.Body;
 body.InsertAfter(sdtBlock, body.Elements<Paragraph>().First()); //insert block into new doc

适用于除图像之外的所有内容。图像显示为红色X或文档显示为损坏。如果你把图像拿出来,这个方法就可以了。

在msdn上查看我认为是因为我需要为该图像创建关系吗?

有人能告诉我这是怎么可能的吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

是的,您需要复制图像部分,并添加指向它的rel。您需要确保段落中的relId与您添加的rel的relId匹配。

请查看http://powertools.codeplex.com/中的DocumentBuilder,了解如何执行此操作。