MS Chart 打印
protected void btnPrint_Click(object sender, EventArgs e) { hidPrint.Value = "1"; //实例化打印对象 PrintDocument printdoc = new PrintDocument(); //定义打印对象的事件 printdoc.PrintPage += new PrintPageEventHandler(printdoc_PrintPage); PaperSize ps = new PaperSize("print_ps", 2100, 2700); printdoc.DefaultPageSettings.PaperSize = ps; printdoc.DefaultPageSettings.Landscape = false; //开始打印 printdoc.Print(); ScriptManager.RegisterStartupScript(this, this.GetType(), "A", "showMessage('数据打印',true);", true); }
<asp:Chart ID="Chart1" runat="server" Width="630px" Height="450px" Style="text-align: left" Palette="Excel" ImageLocation="~/TempImages/ChartPic_#SEQ(400,3)"> <Series> <asp:Series ChartType="Pie" Name="Series1" ChartArea="ChartArea1" Legend="Legend1"> </asp:Series> </Series> <ChartAreas> <asp:ChartArea Name="ChartArea1"> </asp:ChartArea> </ChartAreas> <Legends> <asp:Legend Name="Legend1"> </asp:Legend> </Legends> </asp:Chart>
protected void SetChartData() { Bms_SecurityHiddenTypeCollection collection = new Bms_SecurityHiddenTypeBLL().GetSecurityHiddenTypeRate(Conditions); //设置图表的数据源 Chart1.DataSource = collection; //圆饼百分比 Chart1.Series["Series1"].Label = "#PERCENT{P2}"; //图列文字 Chart1.Series["Series1"].LegendText = "#VALX"; ////返回X轴上的一个值 //Chart1.Series[0].PostBackValue = "#VALX"; Chart1.Series["Series1"].Points.DataBindXY(collection, "TypeName", collection, "Rate"); //绑定数据 Chart1.DataBind(); Chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = true; Chart1.ChartAreas["ChartArea1"].Area3DStyle.Inclination = 45; Chart1.ChartAreas["ChartArea1"].Area3DStyle.Rotation = 45; Chart1.Series["Series1"]["PieLabelStyle"] = "Outside"; }
void printdoc_PrintPage(object sender, PrintPageEventArgs e) { //设置字体 string path = Server.MapPath(string.Format("../TempImageFiles/chart_{0}.png", DateTime.Now.ToString("yyyyMMddhhmmssfff"))); Chart1.SaveImage(path, ChartImageFormat.Png); Bitmap b = new Bitmap(path); e.Graphics.DrawImage(b, e.MarginBounds.Left, e.MarginBounds.Top); e.PageSettings.Landscape = true; }