Печать ASP.NET 3.5 Chart Control - PullRequest
2 голосов
/ 03 мая 2009

Есть какая-нибудь информация о том, как распечатать сгенерированные диаграммы, скажем, в формате PDF? Они выглядят великолепно на экране, но конечные пользователи хотят распечатать их и при необходимости сохранить файл.

Ответы [ 3 ]

1 голос
/ 23 сентября 2013

Я искал способ сделать это и нашел этот ответ для 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>
1 голос
/ 11 апреля 2017

Так что у меня возникла та же проблема при использовании функции 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);
    }
0 голосов
/ 04 сентября 2009

загрузить образцы Chart Control из MSDN. Есть несколько примеров того, как печатать. Чтобы получить PDF, вам нужен драйвер для печати PDF.

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

посмотрите в \ WinSamples \ ChartFeatures \ Printing \

простой способ:

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);

...
...