Desenvolvimento - C#

Imprimir com Visual Studio.NET usando C#.NET

Bom dia pessoal, meu nome é Maurício Júnior e estou aqui para desenvolver mais um artigo que mostra como imprimir usando C#.NET

por Mauricio Junior



Bom dia pessoal, meu nome é Maurício Júnior e estou aqui para desenvolver mais um artigo que mostra como imprimir usando C#.NET. É importante falar antes de tudo que para imprimir é muito fácil, o ato em si é muito fácil e simples, porém o devemos fazer algumas coisas para melhorar o processo ou forma de fazer o mesmo.

Essa ferramenta é muito poderosa e de fácil desenvolvimento. Mesmo para uma pessoa que nunca desenvolveu nenhuma linha de código, fica fácil desenvolver qualquer tipo de sistema autorizado e dinâmico. Navegava no fórum da MSDN e percebi que muitas pessoas estavam começando ou migrando para essa ferramenta. Por exemplo, pessoas que programavam com Visual Basic 6.0 e passaram para o VS.NET. A essas pessoas, é importante informar que o ambiente agora é WEB e de fácil manuseio. Lógico que o ambiente windows também existem, mas estarei falando do WEB. Lembro quando programava com Visual Basic e tinha que mandar comandos para abrir o dialog e montar uma forma de impressão na mão quando não usava Crystal Report.

Hoje em dia o nosso cliente, ou seja, o browser como IE ou outros do mercado que gerencia isso em meu sistema.

Criei uma página chamada index.aspx cujo adicionei dois divs e um botão para imprimir. Quando o cliente ou usuário clicar no botão imprimir, o mesmo abrirá a caixa pedindo para informar a quantidade de impressão ou mesmo em qual impressora imprimir. Usando a programação em C#.NET segue o código para ver o exemplo.

Segue o código da página:

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

public partial class index : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void cmdImprimir_Click(object sender, EventArgs e)

{

Response.Write("<script>window.print();</script>");

}

}

Apenas a linha da cor vermelha mostra como chamar a impressora e imprimir o conteúdo da página. Cliquei F5 e inicei o sistema normalmente, depois de clicar o botão IMPRIMIR que aparece na tela abaixo:

Bem simples e fácil. Agora usando HTML, vou gerar uma impressão dinâmica como imprimir a página sem o titulo que está na página. Criei outro botão para fazer o mesmo que chama cmdImprimirHTML. Veja a idéia dessa impressão:

Um botão html onde chama uma função que esconde o titulo da pagina, mando imprimir e depois mando o mesmo aparece novamente imprimindo apenas o conteúdo. Segue o código da página para análise.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="index" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>Imprimir</title>

<script language=javascript>

function imprimir(){

window.titulo.style.display="none";

window.print();

window.titulo.style.display="";

}

</script>

</head>

<body>

<form id="form1" runat="server">

<div id="titulo">

Título da página

</div>

<br /><br />

<div id="conteudo">

conteúdo da página

</div>

<br /><br />

<asp:Button ID="cmdImprimir" Text="Imprimir" runat="server" OnClick="cmdImprimir_Click" />

&nbsp;

<input type="button" name="cmdImprimirHTML" onclick="imprimir()" value="Imprimir HTML" />

</form>

</body>

</html>

Note que depois de clicar em imprimir, o titulo da página sumiu e logo após apareceu com o dialog de impressora.

Com isso, a mesma irá imprimir sem o titulo.

Espero ter ajudado e agradeço a todos.

Qualquer dúvida, fico a disposição para ajudar.

Mauricio Junior

Mauricio Junior - Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; . Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna e sou editor do Linha de Código.
Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A.
Blog:
blog.mauriciojunior.org
Site pessoal: www.mauriciojunior.org