Pregunta

¿Cómo puedo ocultar el encabezado como 'Página 1 de 1' y pie de página (url) al imprimir un webcontol en ASP.NET?

Lo estoy haciendo actualmente abriendo una nueva página en el botón Imprimir, haga clic en ande dentro de ella

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

Esto imprimirá el encabezado y el pie de página. ¿Cómo evitarlo?

¿Fue útil?

Solución

Esa configuración está configurada por el usuario en su navegador. No hay manera de desactivarlo desde el código. Su mejor apuesta es incluir instrucciones sobre cómo configurar / deshabilitar la configuración.

Vea un ejemplo aquí: http://www.xheo.com/products/sps/default. aspx? print = true

Otros consejos

Debe usar estilos CSS y especificar que se apliquen a un tipo de impresión de medios. Consulte este artículo para obtener ayuda; http://www.cantoni.org/articles/printstyle

Básicamente, cree una hoja de estilo separada solo para los estilos de impresión. Si desea ocultar algo en la página, utilice {display: none} como uno de los atributos de estilo de esos elementos. Luego vincula tu hoja de estilo en el elemento HEAD;

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

Para esto estamos usando una clase de impresión como esta

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

aquí simplemente cambia una línea en la propiedad de formulario y configúralo

frm.ResolveUrl("");

por lo que no se puede ver la URl cuando se imprime la página ... lo uso con éxito.

Si está usando Firefox, y puede hacer que el cliente instale esto complemento .

De lo contrario, si está utilizando Internet Explorer: google para " MeadCo ScriptX "

(La opción FF es gratuita, la opción IE es gratuita solo para la funcionalidad básica)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top