using System.IO; using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Wordprocessing; // Create a new ImagePart var imagePart = mainDocumentPart.AddImagePart(ImagePartType.Jpeg); using (var stream = new FileStream("image.jpg", FileMode.Open)) { // Set the content of the ImagePart imagePart.FeedData(stream); } // Add the image to the document var run = new Run(new Drawing(new Inline(new Graphic(new GraphicData( new Picture(new BlipFill(new Blip() { Embed = mainDocumentPart.GetIdOfPart(imagePart) })))) )))); mainDocumentPart.Document.Body.AppendChild(new Paragraph(run));
using DocumentFormat.OpenXml; using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Drawing; using DocumentFormat.OpenXml.Drawing.Spreadsheet; // Create a new ImagePart var imagePart = mainDocumentPart.AddImagePart(ImagePartType.Png); // Create a new drawing object var drawing = new Drawing(); // Create a new picture object var picture = new Picture(); // Create a new shape properties object var shapeProperties = new ShapeProperties(); // Set the fill color of the shape to red var solidFill = new SolidFill { RgbColorModelHex = new RgbColorModelHex { Val = "FF0000" } }; shapeProperties.AppendChild(new FillProperties(solidFill)); // Set the outline color of the shape to white var outline = new Outline { Width = 12700 }; var solidFill2 = new SolidFill { RgbColorModelHex = new RgbColorModelHex { Val = "FFFFFF" } }; outline.AppendChild(new SolidFillChange(solidFill2)); shapeProperties.AppendChild(outline); // Create a new rectangle shape var rectangle = new Rectangle { Macro = "" }; // Add the shape properties to the rectangle rectangle.AppendChild(shapeProperties); // Add the rectangle to the drawing var nonVisualGraphicFrameDrawingProperties = new NonVisualGraphicFrameDrawingProperties(); picture.AppendChild(nonVisualGraphicFrameDrawingProperties); picture.AppendChild(new BlipFill(new Blip { Embed = mainDocumentPart.GetIdOfPart(imagePart), CompressionState = BlipCompressionValues.Print })); picture.AppendChild(new Stretch(new FillRectangle())); picture.AppendChild(rectangle); drawing.AppendChild(new Inline(new Extent { Cx = 914400L, Cy = 914400L }, new EffectExtent { LeftEdge = 0L, TopEdge = 0L, RightEdge = 19050L, BottomEdge = 91440L }, new DocProperties { Id = (UInt32Value)1U, Name = "Picture 1" }, new NonVisualGraphicFrameDrawingProperties(), new Graphic(picture))); // Add the drawing to the document var run = new Run(drawing); mainDocumentPart.Document.Body.AppendChild(new Paragraph(run));In this example, we create a new ImagePart of type Png. We then create a new Drawing element and add a new Picture element to it. We create a new ShapeProperties element and set its fill color to red and its outline color to white. We create a new Rectangle element and add the ShapeProperties to it. We add the Rectangle to the Picture, along with some other elements required for the image to display properly. Finally, we create a new Run element containing the Drawing and add it to a new Paragraph element, which we add to the document body. Package library: DocumentFormat.OpenXml.Packaging.