是否可以发送部分页面,例如IFrame的内容或Panel的内容作为电子邮件中的附件?
我正在动态创建具有动态尺寸标注的制造图纸页面。我希望用户能够单击“电子邮件”按钮并将其作为附件发送给供应商。
答案 0 :(得分:1)
您可以使用Server.Execute执行页面,捕获TextWriter中的输出,然后使用该字符串为您的电子邮件构建html附件。 server.execute仍在当前用户上下文中执行,因此如果您将其选择放在Session中,那么构建nexessary html就很容易了。但是有一些陷阱:
门诺
答案 1 :(得分:0)
Winnovative.WnvHtmlConvert.PdfConverter p = new Winnovative.WnvHtmlConvert.PdfConverter();
p.LicenseKey = "NotPostingTHat";
p.PdfDocumentOptions.GenerateSelectablePdf = true;
/*
... Setting a bunch of options ...
*/
p.PdfFooterOptions.DrawFooterLine = false;
System.IO.TextWriter writer = new System.IO.StringWriter();
string html = "";
string pdfType = GetPdfType();
switch (pdfType.ToUpper())
{
case "THEME":
HttpContext.Current.Server.Execute("~/Pdf/Theme.aspx", writer);
break;
/* More cases */
}
html = writer.ToString();
if (html.Length > 0)
{
byte[] bytes = p.GetPdfBytesFromHtmlString(html);
context.Response.ContentType = "application/pdf";
context.Response.OutputStream.Write(bytes, 0, bytes.Length);
}
else
{
context.Response.ContentType = "text/plain";
context.Response.Write("No data found!");
foreach (string item in context.Request.Form.AllKeys)
context.Response.Write(String.Format("{0}: {1}\n", new object[] { item, context.Request.Form[item] }));
}
没什么。这是在.ashx。
门诺