private void AddPicture(Paragraph pg, double width, double height, int?imageid) { const int oversizedpixelsinch = 310; const int pixelsinch = 96; var largewidth = (oversizedpixelsinch * width).ToInt(); var largeheight = (oversizedpixelsinch * height).ToInt(); var widthpixels = (width * pixelsinch).ToInt(); var heightpixels = (height * pixelsinch).ToInt(); var img = ImageData.Image.ImageFromId(imageid); if (img != null) { using (var os = img.ResizeToStream(largewidth, largeheight, "pad")) { var pic = docx.AddImage(os).CreatePicture(heightpixels, widthpixels); pg.AppendPicture(pic); } } }
{ /// <summary> /// create doc or docx /// using DOCX: Novacode /// </summary> public static void CreateDocStreamBySvgs(List <SvgDocument> svgDocs, Stream stream) { using (stream) { using (DocX doc = DocX.Create(stream)) { Novacode.Paragraph p = doc.InsertParagraph("", false); for (int i = 0; i < svgDocs.Count; i++) { using (MemoryStream ms = new MemoryStream()) { System.Drawing.Bitmap image = svgDocs[i].Draw(); image.Save(ms, ImageFormat.Bmp); ms.Seek(0, SeekOrigin.Begin); Novacode.Image img = doc.AddImage(ms); Novacode.Picture pic = img.CreatePicture(); p.AppendPicture(pic); } } doc.Save(); } } }
private void DoHeaderFooterParagraphReplacments(Paragraph p, OrgInfo o) { var list = EmailReplacements.TextReplacementsList(p.Text); foreach (var code in list) { if (code.StartsWith("{datemeeting")) { p.ReplaceText(code, Util.PickFirst(EmailReplacements .DateFormattedReplacement(NewMeetingInfo.MeetingDate, code) , "____")); } else if (code == "{orgname}") { p.ReplaceText(code, o.Name); } else if (code == "{today}") { p.ReplaceText(code, DateTime.Today.ToShortDateString()); } else if (code == "{orgid}") { p.ReplaceText(code, o.OrgId.ToString()); } else if (code == "{barcodemeeting}") { var text = $"M.{o.OrgId}.{NewMeetingInfo.MeetingDate:MMddyyHHmm}"; var s = BarCodeStream(text, 50, showtext: false); var img = curr.AddImage(s); p.AppendPicture(img.CreatePicture()); p.ReplaceText(code, ""); p.Alignment = Alignment.right; } } }