With the code below, how can i send PDF which has a rendered image to an email
protected void Button3_Click(object sender, EventArgs e)
{
string fileName = "Invoice" + DateTime.Now.ToString() + ".pdf";
byte[] QRBytes = GetQRCodeBytes(Server.MapPath("/InvoiceDoc.aspx") + "?Id=" + Session["Invoice"]);
Image1.ImageUrl = "data:image/jpg;base64," + Convert.ToBase64String(QRBytes);
var ImgUrl = Image1.ImageUrl;
// Write image as file to folder.
File.WriteAllBytes(Server.MapPath("qrimg.jpg"), QRBytes);
// convert and set absolute url in image.
Image1.ImageUrl = GetUrl("qrimg.jpg");
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
Panel1.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 10f);
PdfWriter PdfWriter = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);
htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false);
cssResolver.AddCssFile(Server.MapPath("~/css/style2.css"), true);
IPipeline pipeline = new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlContext, new PdfWriterPipeline(pdfDoc, PdfWriter)));
var worker = new XMLWorker(pipeline, true);
var xmlParse = new XMLParser(true, worker);
pdfDoc.Open();
xmlParse.Parse(sr);
xmlParse.Flush();
pdfDoc.Close();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=" + fileName + ";");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Write(pdfDoc);
// Delete the temp image.
File.Delete(Server.MapPath("qrimg.jpg"));
Image1.ImageUrl = ImgUrl;
Response.End();
}