Note that there are some explanatory texts on larger screens.

plurals
  1. POCreate jpg and insert into word document
    primarykey
    data
    text
    <p>I'm starting to do my first drawing (jpg) with c#. I'd like to insert it directly into a word document.</p> <p>Could I do that without saving my jpg into a temporary directory?</p> <p>in this moment, I can only load image from temp directory:</p> <pre><code> public void InsertAPicture(string document, string fileName, string bookmarkName) { Paragraph newParag = null; using (WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open(document, true)) { MainDocumentPart mainPart = wordprocessingDocument.MainDocumentPart; ImagePart imagePart = mainPart.AddImagePart(ImagePartType.Jpeg); using (FileStream stream = new FileStream(fileName, FileMode.Open)) { imagePart.FeedData(stream); } newParag = AddImageToBody(wordprocessingDocument, mainPart.GetIdOfPart(imagePart)); replaceBookmarkText(wordprocessingDocument, bookmarkName, newParag); } } private Paragraph AddImageToBody(WordprocessingDocument wordDoc, string relationshipId) { // Define the reference of the image. var element = new Drawing( new DW.Inline( new DW.Extent() { Cx = 990000L, Cy = 792000L }, new DW.EffectExtent() { LeftEdge = 0L, TopEdge = 0L, RightEdge = 0L, BottomEdge = 0L }, new DW.DocProperties() { Id = (UInt32Value)1U, Name = "Picture 1" }, new DW.NonVisualGraphicFrameDrawingProperties( new A.GraphicFrameLocks() { NoChangeAspect = true }), new A.Graphic( new A.GraphicData( new PIC.Picture( new PIC.NonVisualPictureProperties( new PIC.NonVisualDrawingProperties() { Id = (UInt32Value)0U, Name = "New Bitmap Image.jpg" }, new PIC.NonVisualPictureDrawingProperties()), new PIC.BlipFill( new A.Blip( new A.BlipExtensionList( new A.BlipExtension() { Uri = "{28A0092B-C50C-407E-A947-70E740481C1C}" }) ) { Embed = relationshipId, CompressionState = A.BlipCompressionValues.Print }, new A.Stretch( new A.FillRectangle())), new PIC.ShapeProperties( new A.Transform2D( new A.Offset() { X = 0L, Y = 0L }, new A.Extents() { Cx = 990000L, Cy = 792000L }), new A.PresetGeometry( new A.AdjustValueList() ) { Preset = A.ShapeTypeValues.Rectangle })) ) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" }) ) { DistanceFromTop = (UInt32Value)0U, DistanceFromBottom = (UInt32Value)0U, DistanceFromLeft = (UInt32Value)0U, DistanceFromRight = (UInt32Value)0U, EditId = "50D07946" }); return new Paragraph(new Run(element)); } private void replaceBookmarkText(WordprocessingDocument doc, string bookmarkName, Paragraph text) { var t = (from el in doc.MainDocumentPart.RootElement.Descendants&lt;BookmarkStart&gt;() where (el.Name == bookmarkName) &amp;&amp; (el.NextSibling&lt;Run&gt;() != null) select el).First(); t.NextSibling&lt;Run&gt;().Append(text); } </code></pre> <p>And, i create a graphic image in this way:</p> <pre><code> Bitmap objBitmap; Graphics objGraphics; //Create object objBitmap = new Bitmap(200, 5); objGraphics = Graphics.FromImage(objBitmap); //Draw line objGraphics.DrawLine(new Pen(Color.Red), 0, 0, 200, 200); //Save objBitmap.Save(Response.OutputStream, ImageFormat.Jpeg); objGraphics.Dispose(); objBitmap.Dispose(); </code></pre> <p>How can i send to my InsertAPicture Method, my Graphics object instead of my image path file?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload