我在打印图表时遇到问题。如何使网页特定区域的打印包含图表?
我做了一个网页,包含一些控件和一个图表,使用微软图表控件。这个问题目前正在IE 8和Firefox 9.0.1中影响我。
当我使用JavaScript打印时,它打印包含在div中的所有控件,但图表控件未显示在打印预览页面上这是在同一个div。
我在打印图表时遇到问题。如何使网页特定区域的打印包含图表?
我做了一个网页,包含一些控件和一个图表,使用微软图表控件。这个问题目前正在IE 8和Firefox 9.0.1中影响我。
当我使用JavaScript打印时,它打印包含在div中的所有控件,但图表控件未显示在打印预览页面上这是在同一个div。
如果您正在使用Microsoft Chart Controls你可以尝试打印下面的代码:
public void PrintWebControl(Control ctrl, string Script)
{
StringWriter stringWrite = new StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);
if (ctrl is WebControl)
{
Unit w = new Unit(100, UnitType.Percentage);
((WebControl)ctrl).Width = w;
}
Page pg = new Page();
pg.EnableEventValidation =false;
if (Script != string.Empty)
{
pg.ClientScript.RegisterStartupScript(pg.GetType(), "PrintJavaScript", Script);
}
HtmlForm frm = new HtmlForm();
pg.Controls.Add(frm);
frm.Attributes.Add("runat", "server");
frm.Controls.Add(ctrl);
pg.DesignerInitialize();
pg.RenderControl(htmlWrite);
string strHTML = stringWrite.ToString();
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Write(strHTML);
HttpContext.Current.Response.Write("<script>window.print();</script>");
HttpContext.Current.Response.End();
}
呼叫:
PrintWebControl(Panel1);
让你需要的图表的打印。
但问题在于他试图打印一个嵌入了这种控件的页面。我认为他的问题是为什么它没有出现。 –
** Script **参数的内容是什么? – Amir
它是一种什么样的图表? –
您能更精确地分享印刷图表编码吗?你是否也使用Microsoft Chart Controls或其他第三方制图工具? – Pratik
构建一个仅包含图表的页面,并在页面末尾添加JavaScript print()和close()方法。 – adatapost