Pergunta

Qualquer informação por aí sobre como imprimir os gráficos gerados em formato PDF digamos? Eles olhar fabuloso na tela, mas os usuários finais querem imprimi-los e arquivo conforme necessário.

Foi útil?

Solução

baixar as amostras de controlo Gráfico do MSDN. existem vários exemplos de como imprimir. Para obter PDF, você precisa de um driver de impressão PDF.

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

olhar em \ WinSamples \ ChartFeatures \ Printing \

A forma simples é:

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

...

Outras dicas

Eu estava procurando uma maneira de fazer isso e encontrei esta resposta para winforms

Esta é a maneira que eu tenho o asp: chart para imprimir

Adicionar javascript na página web:

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

}

este está ligado a um botão de entrada

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

O próximo passo foi adicionar elementos à web.config

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

De acordo com o system.web tag

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

De acordo com o 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>

Então, eu estava tendo o mesmo problema ao usar a função PrintPage JavaScript (); Seria imprimir a página web, mas não incluem controles gráfico asp.net. Você poderia ver a borda da tabela, mas não os dados. Então o que eu fiz para corrigir esse problema era mover o botão que estava sendo usado para chamar minha função printPage () fora do UpdatePanel e funcionou.

Espero que isso ajude alguém.

<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);
    }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top