Question

Avez-vous des informations sur la façon d’imprimer les graphiques générés au format PDF, par exemple? Ils ont l’air fabuleux à l’écran mais les utilisateurs finaux veulent les imprimer et les archiver au besoin.

Était-ce utile?

La solution

téléchargez les exemples de contrôle de graphique à partir de MSDN. il existe plusieurs exemples d’impression. Pour obtenir un PDF, vous avez besoin d’un pilote d’impression PDF.

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

regarder dans \ WinSamples \ ChartFeatures \ Printing \

le moyen le plus simple est:

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

...

Autres conseils

Je cherchais un moyen de faire cela et trouvais cette réponse pour winforms

C’est ainsi que j’ai eu le code asp: chart à imprimer

Ajouter du javascript sur la page 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();

}

cela est lié à un bouton de saisie

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

L'étape suivante consistait à ajouter des éléments au web.config

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

Sous la balise 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>

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

J'avais donc le même problème lorsque j'utilisais la fonction JavaScript PrintPage (); Cela imprimerait la page Web, mais n'inclurait pas les contrôles de graphique asp.net. Vous pouvez voir la bordure du graphique mais pas les données. Ce que j’ai fait pour résoudre ce problème a été de déplacer le bouton utilisé pour appeler ma fonction printPage () en dehors de updatePanel et cela a fonctionné.

J'espère que cela aide quelqu'un.

<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);
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top