private static Paragraph AddImageParagraph(MainDocumentPart mainDocumentPart, List<TextPositon> listTextPositon) { ImagePart imagePart = mainDocumentPart.AddImagePart(ImagePartType.Jpeg); imageRelationshipID = mainDocumentPart.GetIdOfPart(imagePart); using (Stream imgStream = imagePart.GetStream()) { System.Drawing.Bitmap logo = new System.Drawing.Bitmap(string.Format(@"{0}\Resources\Wedding_EnclosureCards.jpg", Environment.CurrentDirectory)); foreach (var item in listTextPositon) { System.Drawing.Font font = new System.Drawing.Font("Thaoma", 10, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(logo); float actualWidth = g.MeasureString(item.Text, font).Width; System.Drawing.RectangleF rectf = new System.Drawing.RectangleF((330 - actualWidth) / 2 + item.X, item.Y, 330, 50); g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; g.DrawString(item.Text, font, System.Drawing.Brushes.Gray, rectf); g.Flush(); } logo.Save(imgStream, System.Drawing.Imaging.ImageFormat.Jpeg); } Paragraph p = new Paragraph(); Run r = new Run(); Drawing drawing = BuildImage(imageRelationshipID, "sw.gif", 600, 850); r.Append(drawing); p.Append(r); return p; }
private void AddRows(MainDocumentPart mainpart, Table t) { var pr = new PictureRow(); foreach (var i in q) { var b = ImageDb.FetchBytes(DbUtil.Db, i.PictureId, 160, 200); string iid = ""; if (b != null) { ImagePart imagePart = mainpart.AddImagePart(ImagePartType.Jpeg); using (var writer = new BinaryWriter(imagePart.GetStream())) { writer.Write(b); } iid = mainpart.GetIdOfPart(imagePart); } var r = pr.GenerateTableRow(i, iid); t.Append(r); } }
private void FillContent(MainDocumentPart mainDocumentPart, IEnumerable<ComplexContentType> controlList) { foreach (var type in controlList) { var contentControlByTag = GetContentControlByTag(mainDocumentPart, type.Tag); var paragraph = contentControlByTag.Descendants<Paragraph>().FirstOrDefault(); if (type.ContentType == ContentType.PlainText || type.ContentType == ContentType.RichText) { var text = paragraph.Descendants<Text>().FirstOrDefault(); if (text != null) { text.Text = contentOfContentControls[type.Tag]; var run = text.Parent as Run; if (run != null) run.RunProperties.RunStyle = new RunStyle {Val = "Normal"}; } } if (type.ContentType == ContentType.Picture) { var imagePart = mainDocumentPart.AddImagePart(ImagePartType.Gif); using (var fileStream = File.Open("Images\\chess_b_w.gif", FileMode.Open)) { imagePart.FeedData(fileStream); } var blipFill = paragraph.Descendants<BlipFill>().FirstOrDefault(); var blip = blipFill.GetFirstChild<Blip>(); blip.Embed = mainDocumentPart.GetIdOfPart(imagePart); blipFill.SourceRectangle.Remove(); contentControlByTag.GetFirstChild<SdtProperties>().GetFirstChild<ShowingPlaceholder>().Remove(); } } }
private string CreateImagePart(MainDocumentPart mainPart, string picturePath) { ImagePart imagePart = mainPart.AddImagePart(ImagePartType.Jpeg); using (FileStream stream = new FileStream(picturePath, FileMode.Open)) { imagePart.FeedData(stream); } return mainPart.GetIdOfPart(imagePart); }