Question

Comment masquer l'en-tête "Page 1 sur 1" et le pied de page (url) lors de l'impression d'un contrôle Web dans ASP.NET?

Je le fais actuellement en ouvrant une nouvelle page sur le bouton Imprimer, cliquez dessus et cliquez dessus

protected void Page_Load(object sender, EventArgs e)
{
    if( null != Session["Control"] )
    {
        Control ctrl = ( Control )Session["Control"];
        PrintManager.PrintWebControl( ctrl );
        Session["Control"] = null;
    }
}

Ceci imprimera l'en-tête et le pied de page. Comment l'éviter?

Était-ce utile?

La solution

Ce paramètre est configuré par l'utilisateur dans son navigateur. Leur n'est pas un moyen de le désactiver du code. Le mieux est d’inclure des instructions sur la configuration / désactivation des paramètres.

Voir un exemple ici: http://www.xheo.com/products/sps/default. aspx? print = true

Autres conseils

Vous devez utiliser les styles CSS et spécifier qu'ils s'appliquent à un type de support d'impression. Consultez cet article pour obtenir de l'aide. http://www.cantoni.org/articles/printstyle

Créez une feuille de style distincte pour les styles d'impression uniquement. Si vous souhaitez masquer quelque chose sur la page, utilisez {display: none} comme attribut de style de cet élément. Ensuite, liez votre feuille de style à l'élément HEAD.

<link href="print.css" media="print" type="text/css" rel="stylesheet" />

Pour cela, nous utilisons une classe d'impression comme celle-ci

public static void PrintWebControl(Control ctrl)
{
    PrintWebControl(ctrl, string.Empty);
}

public static void PrintWebControl(Control ctrl, string Script)
{
    StringWriter stringWrite = new StringWriter();
    System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);
    if (ctrl is WebControl)
    {
        Unit w = new Unit(100, UnitType.Percentage); ((WebControl)ctrl).Width = w;
    }
    Page pg = new Page();
    pg.EnableEventValidation = false;
    if (Script != string.Empty)
    {
        pg.ClientScript.RegisterStartupScript(pg.GetType(), "PrintJavaScript", Script);
    }
    HtmlForm frm = new HtmlForm();

    pg.Controls.Add(frm);
    // done changes on below 1 line for unassigned header URL //
    frm.ResolveUrl("");
    frm.Attributes.Add("runat", "server");
    frm.Controls.Add(ctrl);

    pg.DesignerInitialize();

    pg.RenderControl(htmlWrite);
    string strHTML = stringWrite.ToString();
    HttpContext.Current.Response.Clear();        
    HttpContext.Current.Response.Write(strHTML);
    HttpContext.Current.Response.Write("<script>window.print();</script>");
    HttpContext.Current.Response.End();
}

modifiez ici une ligne dans la propriété de formulaire et définissez-la

frm.ResolveUrl("");

donc URl n'est pas visible lorsque la page est imprimée..je l'utilise avec succès.

Si vous utilisez Firefox et que le client puisse installer le this page module complémentaire .

Sinon, si vous utilisez Internet Explorer: google pour " MeadCo ScriptX ",

.

(l'option FF est gratuite, l'option IE est gratuite pour les fonctionnalités de base uniquement)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top