2009-05-03 4 views
1

Любая информация о том, как печатать созданные диаграммы в формате PDF? Они выглядят сказочными на экране, но конечные пользователи хотят их распечатать и при необходимости распечатать.Печать ASP.NET 3.5 Контроль диаграммы

+0

См. Мой комментарий в разделе @ ответа CheGueVerra ниже. –

ответ

-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

Я не понимаю, почему этот ответ был отмечен как правильный. Вопрос о печати MS Chart в ASP.NET, тогда как ответ о его печати в WinForms. И в образцах диаграмм ASP.NET нет примеров печати. –

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 из to

1

Так что я с той же проблемой при использовании функции JavaScript PrintPage(); Он напечатает веб-страницу, но не будет включать элементы управления диаграммой asp.net. Вы можете видеть границу графика, но не данные. Итак, что я сделал, чтобы исправить эту проблему, была кнопка, которая использовалась для вызова моей функции printPage() вне updatePanel, и она работала.

Надеюсь, это поможет кому-то.

<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); 
    } 
Смежные вопросы