Ocultar cabeçalho e rodapé ao imprimir um WebControl usando ASP.NET
-
05-07-2019 - |
Pergunta
Como posso ocultar o cabeçalho como 'Página 1 de 1' e rodapé (url) ao imprimir um webcontol em ASP.NET?
Eu atualmente fazendo abrindo uma nova página no botão Imprimir clique ande nele
protected void Page_Load(object sender, EventArgs e)
{
if( null != Session["Control"] )
{
Control ctrl = ( Control )Session["Control"];
PrintManager.PrintWebControl( ctrl );
Session["Control"] = null;
}
}
Isto irá imprimir o cabeçalho e rodapé. Como evitá-lo?
Solução
Essa configuração é definida pelo usuário no seu browser. Sua há nenhuma maneira de desativá-lo a partir do código. You'r melhor aposta é a de incluir instruções sobre como configurar / desativar as configurações.
Veja um exemplo aqui: http://www.xheo.com/products/sps/default. aspx? print = true
Outras dicas
Você deve usar estilos CSS e especificar que se aplicam a um tipo de mídia de impressão. Veja este artigo para obter ajuda; http://www.cantoni.org/articles/printstyle
Basicamente criar uma folha de estilo separada para apenas estilos de impressão. Se você quer esconder algo na { display:none }
uso página como um dos que atributos de estilo elementos. Em seguida, ligar o seu estilo no elemento HEAD;
<link href="print.css" media="print" type="text/css" rel="stylesheet" />
Para isso, estamos usando a classe de impressão como ele
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();
}
aqui apenas mudar uma linha na propriedade de formulário e set
frm.ResolveUrl("");
para URL não é visível quando a página é o uso print..i-lo com sucesso.
Se você estiver usando o Firefox, e você pode ter o cliente instalar este add-on .
Caso contrário, se você estiver usando o Internet Explorer: no Google por " MeadCo ScriptX "
(opção FF é livre, opção IE é livre para a funcionalidade básica apenas)