DocumentFormat.OpenXml Добавление изображения в документ Word - PullRequest
3 голосов
/ 13 мая 2011

Я создаю простое слово doc, используя openXml SDK. Это работает до сих пор. Теперь, как я могу добавить изображение из моей файловой системы в этот документ? Мне все равно, где это в документе, просто так оно и есть. Спасибо! Вот что у меня есть.

 string fileName = "proposal"+dealerId +Guid.NewGuid().ToString()+".doc";
       string filePath = @"C:\DWSApplicationFiles\Word\" + fileName;
       using (WordprocessingDocument wordDoc = WordprocessingDocument.Create(filePath, WordprocessingDocumentType.Document, true))
       {
           MainDocumentPart mainPart = wordDoc.AddMainDocumentPart();

           mainPart.Document = new Document();
           //create the body
           Body body = new Body();
           DocumentFormat.OpenXml.Wordprocessing.Paragraph p = new DocumentFormat.OpenXml.Wordprocessing.Paragraph();
           DocumentFormat.OpenXml.Wordprocessing.Run runParagraph = new DocumentFormat.OpenXml.Wordprocessing.Run();         

           DocumentFormat.OpenXml.Wordprocessing.Text text_paragraph = new DocumentFormat.OpenXml.Wordprocessing.Text("This is a test");
           runParagraph.Append(text_paragraph);
           p.Append(runParagraph);
           body.Append(p);
           mainPart.Document.Append(body);
           mainPart.Document.Save();              
       }

Ответы [ 2 ]

0 голосов
/ 17 мая 2011

Этот код работал для меня: http://msdn.microsoft.com/en-us/library/bb497430.aspx

Ваш код добавляет изображение в ваш пакет docx, но чтобы увидеть его в документе, вы должны объявить его в вашем document.xml, т.е. связать его сваш физический образ.Вот почему вы должны написать эту длинную функцию, указанную в ссылке msdn.

Моя проблема в том, как добавить эффекты к изображениям (редактирование, обрезка, удаление фона).Если вы знаете, как это сделать, я буду признателен за вашу помощь:)

0 голосов
/ 13 мая 2011

Как: добавить часть изображения в пакет Office Open XML с помощью API Open XML

http://msdn.microsoft.com/en-us/library/bb497430(v=office.12).aspx

public static void AddImagePart(string document, string fileName)
{
    using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(document, true))
    {
        MainDocumentPart mainPart = wordDoc.MainDocumentPart;

        ImagePart imagePart = mainPart.AddImagePart(ImagePartType.Jpeg);

        using (FileStream stream = new FileStream(fileName, FileMode.Open))
        {
            imagePart.FeedData(stream);
        }
    }
}
...