2009-05-03 107 views
1

有關如何以PDF格式打印生成的圖表的任何信息?它們在屏幕上看起來很棒,但最終用戶需要根據需要打印文件和文件。打印ASP.NET 3.5圖表控件

+0

看到我的意見在@ CheGueVerra下面的答案。 – 2014-11-12 14:53:41

回答

-1

從MSDN下載圖表控件樣本。有幾個如何打印的樣本。要獲得PDF,您需要一個PDF打印驅動程序。

http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591

看在\ WinSamples \ ChartFeatures \打印\

簡單的方法就是:

using System.Windows.Forms.DataVisualization.Charting; 
... 

// Show Page Setup dialog 
chart1.Printing.PageSetup(); 

// Print preview chart 
chart1.Printing.PrintPreview(); 

// Print chart (without Printer dialog) 
chart1.Printing.Print(false); 

... 
+4

我不明白爲什麼這個答案被標記爲正確的。 問題是關於在ASP.NET中打印MS Chart,而答案是關於在WinForms中打印它。 而且,在ASP.NET圖表示例中,沒有打印示例。 – 2010-02-03 09:08:47

1

我一直在尋找一種方式來做到這一點,發現這個答案的WinForms

這是我得到asp:圖表打印的方式

添加網頁上的javascript:

<script type="text/javascript" language="javascript"> 
    function printChart() { 

    var html = '<HTML>\n<HEAD>\n'; 
    html += '<link rel="stylesheet" type="text/css" href="../../../Styles/print.css" media="print"> \n'; 

    html += '\n</HEAD>\n<BODY>\n'; 
    html += '\n<div>'; 

    var printReadyElement = document.getElementById("printChart"); 

    if (printReadyElement != null) { 
     html += printReadyElement.innerHTML; 
    } 
    else { 
     alert("Trouble printing Chart"); 
     return; 
    } 

    html += '\n</div>'; 

    html += '\n</BODY>\n</HTML>'; 

    var printWin = window.open("", "printSpecial"); 
    printWin.document.open(); 
    printWin.document.write(html); 
    printWin.document.close(); 

    printWin.print(); 

} 

此鏈接到一個輸入按鈕

<input type="button" value="Print" onclick="printChart()" style="width:99px; height:26px;" /> 

下一步是將元素添加到web.config

<appSettings> 
    <add key="ChartImageHandler" value="storage=memory;timeout=20;deleteAfterServicing=false;" /> 
</appSettings> 

根據system.web標籤

<httpHandlers>  
     <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" /> 
    </httpHandlers> 

根據system.webServer

<handlers> 
    <remove name="ChartImageHandler"> 
    <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
</handlers> 
+0

爲了讓我的頁面上的圖表打印出來,我只需要將appSetting從 2014-11-11 20:06:58

1

所以使用JavaScript功能的PrintPage當我有同樣的問題(); 它將打印網頁,但不包括asp.net圖表控件。你可以看到圖表的邊界,但沒有看到數據。所以我做了什麼來解決這個問題是移動了用來在updatePanel之外調用我的printPage()函數的按鈕,並且它工作正常。

希望這可以幫助別人。

<asp:Button runat="server" ID="btnPrint" OnClick="btnPrint_Click" CssClass="Floater" Text="Print Customer Report" Visible="True" /> 

<script> 
    function PrintPage() { 

     window.print(); 
    } 
</script> 

protected void btnPrint_Click(object sender, EventArgs e) 
    { 
     ScriptManager.RegisterStartupScript(Page, GetType(), "JsStatus", "PrintPage();", true); 
    }