Копировать изображение между документами, используя OpenXml и C # - PullRequest
1 голос
/ 15 февраля 2011

У меня есть два документа, мне нужно скопировать изображение из одного документа в другой.Я не могу использовать 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

Это работает для всего, кромеизображение.Изображение отображается как красный крестик или документ отображается как поврежденный.Если вы снимаете изображение, этот метод работает нормально.

Глядя на msdn, я думаю, это потому, что мне нужно создать отношения для этого изображения?

Может кто-нибудь показать мне, как это возможно?

Спасибо!

1 Ответ

1 голос
/ 17 февраля 2011

Да, вам нужно скопировать часть изображения поперек и добавить ссылку на нее. Вы должны убедиться, что relId в этом параграфе совпадает с RelId добавленной вами Rel.

Посмотрите на DocumentBuilder в http://powertools.codeplex.com/ как это сделать.

...