Domanda

Come posso nascondere l'intestazione come 'Pagina 1 di 1' e piè di pagina (url) quando stampo un webcontol in ASP.NET?

Attualmente lo faccio aprendo una nuova pagina sul pulsante Stampa, fare clic su ee in esso

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

Questo stamperà l'intestazione e il piè di pagina. Come evitarlo?

È stato utile?

Soluzione

Tale impostazione è configurata dall'utente nel proprio browser. Il loro non è un modo per disabilitarlo dal codice. La soluzione migliore è includere le istruzioni su come configurare / disabilitare le impostazioni.

Vedi un esempio qui: http://www.xheo.com/products/sps/default. aspx? print = true

Altri suggerimenti

È necessario utilizzare gli stili CSS e specificare che si applicano a un tipo di supporto di stampa. Vedi questo articolo per aiuto; http://www.cantoni.org/articles/printstyle

Fondamentalmente crea un foglio di stile separato solo per gli stili di stampa. Se vuoi nascondere qualcosa sulla pagina usa {display: none} come uno di questi attributi di stile. Quindi collega il tuo foglio di stile nell'elemento HEAD;

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

Per questo stiamo usando una classe di stampa simile

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

qui basta cambiare una riga nella proprietà del modulo e impostare

frm.ResolveUrl("");

quindi URl non è visibile quando la pagina è stampata .. la uso con successo.

Se stai usando Firefox e puoi avere il client che installa questo add-on .

Altrimenti, se si utilizza Internet Explorer: google per " MeadCo ScriptX "

(L'opzione FF è gratuita, l'opzione IE è gratuita solo per le funzionalità di base)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top