Exportar para PDF ou imprimir

Oi,

Para imprimir basta criares uma função em javascript para imprimir, no entanto não é possivel definir a zona a imprimir, ou seja, imprime toda a janela toda:

[javascript]
function imprimir(){
window.print();

window.close();
}
[/javascript]

Para contornares esse pequeno problema podes utilizar um ficheiro auxiliar, que abre, imprimi e volta onde estavas!

Espero ter ajudado

Cumps,
 
oi,

Faz da seguinte forma, teras de ter a tua página onde tens eventualmente o form ou tabela e um botão imprimir.

Ao clicar no botão imprimir vais abrir uma página onde tens a informação a imprimir configurada e no evento onload a função javascript para imprimir e para fechar a janela.

Terias por exemplo:

verSocio.aspx (página onte listavas socios e etc e onde tinhas um botão que chamava outra página)

verSocioImprimir.aspx (página que seria chamada em verSocio.aspx, com o evento onload a imprimir)

cumps,
 
para tdo ficar melhor fazes um crystal report em asp.net , a puxar os dados da pagina que queres imprimir , logo a gerar automaticamente para pdf no qual da logo para guardar o file e imprimir, pois as impressões das paginas de browser para browser e de pc para pc variam devido as confs de impressoras, se quizeres depois arranjote o code para isso , tenho um ja feito
 
temos 2 ficheiros reclicenca.rpt e recibopdf.aspx em que ambos tem o se .cs coorespondente

tens de criar 2 new items um aspx normal, e um crystalreport

codigo recibopdf.aspx é um webform normal não content
_______________________________________________________________________
Código:
<head runat="server">
    <title>Untitled Page</title>
      <script type="text/javascript">
        if(window.history.forward(1) != null) 
        {
            window.history.forward(1);            
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
    </form>
</body>
</html>
esse script é para a pagina não poder voltar para tras


recibopdf.aspx.cs
_______________________________________________

Código:
  public partial class recibopdf : System.Web.UI.Page
    {

    #region Objectos

     /*cria uma var do tipo recigopdf*/
     reclicenca crReportDocument = new reclicenca();
     
     protected CrystalDecisions.CrystalReports.Engine.ReportDocument reportDocument1 = new ReportDocument();

        //criação dos parametros

        //informação pessoal
        CrystalDecisions.Shared.ParameterField paramnome;
        CrystalDecisions.Shared.ParameterField parammorada;
        CrystalDecisions.Shared.ParameterField paramlocalidade;
        CrystalDecisions.Shared.ParameterField paramcodpostal;
        CrystalDecisions.Shared.ParameterField paramident;
        CrystalDecisions.Shared.ParameterField paramnumero;
        CrystalDecisions.Shared.ParameterField paramnacionalidade;
        CrystalDecisions.Shared.ParameterField paramdatanasc;
        CrystalDecisions.Shared.ParameterField paramemail;

        //situação profissional

        CrystalDecisions.Shared.ParameterField paramtipoprovimento;
        CrystalDecisions.Shared.ParameterField paramqzp;
        CrystalDecisions.Shared.ParameterField paramnumescprovimento;
        CrystalDecisions.Shared.ParameterField paramnomeescprovimento;
        CrystalDecisions.Shared.ParameterField paradreescprovimento;
        CrystalDecisions.Shared.ParameterField paramqzpescprovimento;

        CrystalDecisions.Shared.ParameterField paramnumescexerce;
        CrystalDecisions.Shared.ParameterField paramnomeescexerce;
        CrystalDecisions.Shared.ParameterField paradreescexerce;
        CrystalDecisions.Shared.ParameterField paramqzpescexerce;

        CrystalDecisions.Shared.ParameterField paramgruporecrutamento;
        CrystalDecisions.Shared.ParameterField parammodalidadeensino;
        CrystalDecisions.Shared.ParameterField paramnivelensino;

        //identificação de pedido

        CrystalDecisions.Shared.ParameterField paramduracao;
        CrystalDecisions.Shared.ParameterField parampartirde;
        CrystalDecisions.Shared.ParameterField paramdatasub;

        #endregion

   #region Web Form Designer generated code

        override protected void OnInit(EventArgs e)
        {
           base.OnInit(e);
        }



        #endregion

   #region Eventos

        private void Page_Load(object sender, System.EventArgs e)
        {
          
           if (Session["candidato"] != null)
           {
               Load_Data();
           }
           else
           Response.Redirect("default.aspx"); 
        }





        #endregion

   #region Métodos



        private void Load_Data()
        {

        MemoryStream oStream = new MemoryStream();

        InicializaReport(crReportDocument);


       oStream = (MemoryStream)reportDocument1.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);

            Response.Clear();

            Response.Buffer = true;

            Response.ContentType = "application/pdf";

            Response.BinaryWrite(oStream.ToArray());

            Response.End();






        }




        //Funções Genéricas

        private void InicializaReport(ReportClass crReportDocument)
        {

            Dados d = new Dados();
            DataRow dr;

            DataRow dr2,dr3,dr4;
            dr = d.dadosDocente(Session["candidato"].ToString());

            dr2 = d.Licenca(Session["candidato"].ToString ());
            //grupo recrutamento
            Session["grupo"] = dr2[6].ToString();
            d.nome_gruporecrutamento(Session["grupo"].ToString());
            Session["nome"] = d.gruporecrutamento;

            dr3 = d.Escola_Qzp_DRE(Session["idqzp"].ToString ());
            dr4 = d.Escola_Qzp_DRE(Session["idqzp2"].ToString());

            reportDocument1.Load(@"C:\projectos\licensas_sem_venc_projs\Licencas\Licencas\reclicenca.rpt");

           
           
            //chamada de parameterfields do crystal
            paramnome = reportDocument1.ParameterFields["Nome"];
            parammorada = reportDocument1.ParameterFields["morada"];
            paramlocalidade = reportDocument1.ParameterFields["localidade"];
            paramcodpostal = reportDocument1.ParameterFields["codigopostal"];
            paramident = reportDocument1.ParameterFields["identificacao"];
            paramnumero = reportDocument1.ParameterFields["numero"];
            paramnacionalidade = reportDocument1.ParameterFields["nacionalidade"];
            paramdatanasc = reportDocument1.ParameterFields["datanascimento"];
            paramemail = reportDocument1.ParameterFields["email"];

            //situação prof
            paramtipoprovimento = reportDocument1.ParameterFields["tipoprovimento"]; ;
            paramqzp = reportDocument1.ParameterFields["qzp"];

            paramnumescprovimento = reportDocument1.ParameterFields["numescolaprovimento"]; ;
            paramnomeescprovimento = reportDocument1.ParameterFields["nomeescolaprovimento"]; ;
            paradreescprovimento = reportDocument1.ParameterFields["dreescolaprovimento"]; ;
            paramqzpescprovimento = reportDocument1.ParameterFields["qzpescolaprovimento"]; ;


            paramnumescexerce = reportDocument1.ParameterFields["numescolaexerce"]; 
            paramnomeescexerce = reportDocument1.ParameterFields["nomeescolaexerce"]; 
            paradreescexerce = reportDocument1.ParameterFields["dreescolaexerce"]; 
            paramqzpescexerce = reportDocument1.ParameterFields["qzpescolaexerce"]; 

            paramgruporecrutamento = reportDocument1.ParameterFields["gruporecrutamento"]; 
            parammodalidadeensino = reportDocument1.ParameterFields["modalidadeensino"]; 
            paramnivelensino = reportDocument1.ParameterFields["nivelensino"]; 

            //identificação de pedido

            paramduracao = reportDocument1.ParameterFields["duracao"];
            parampartirde = reportDocument1.ParameterFields["efeitoapartir"];
            paramdatasub = reportDocument1.ParameterFields["data"];

            //info pessoal
            if (dr != null)
            {
                //atribuição do valor ao parametro
                paramnome.CurrentValues.AddValue("" + dr[1].ToString());
                parammorada.CurrentValues.AddValue("" + dr[10].ToString());
                paramlocalidade.CurrentValues.AddValue("" + dr[12].ToString());
                paramcodpostal.CurrentValues.AddValue("" + dr[13].ToString());
                paramident.CurrentValues.AddValue("" + dr[2].ToString());
                paramnumero.CurrentValues.AddValue(""+dr[3].ToString());
                paramnacionalidade.CurrentValues.AddValue(""+dr[7].ToString());
                paramdatanasc.CurrentValues.AddValue("" + dr[4].ToString().Substring(0, 10));
                paramemail.CurrentValues.AddValue("" + dr[20].ToString());
            }

            // sit prof

            if (dr2 != null)
            {

                if (dr2[2].ToString().Trim() == "QE")
                {
                    paramtipoprovimento.CurrentValues.AddValue("Quadro Escola");
                    paramqzp.CurrentValues.AddValue(" Não avaliado");
                }
                if (dr2[2].ToString().Trim() == "QZP")
                {
                    paramtipoprovimento.CurrentValues.AddValue("Quadro zona pedagógica");
                   
                    // qzp
                   //Session["idqzp"] = dr[3].ToString();
                    d.nomeqzp(Session["ddlQZP"].ToString ());
                    Session["nomeqzp"] = d.nome_qzp;
                    paramqzp.CurrentValues.AddValue(""+ Session["nomeqzp"].ToString());
                }

                paramnumescprovimento.CurrentValues.AddValue("" + Session["idqzp"].ToString());
                paramnomeescprovimento.CurrentValues.AddValue(""+dr3[1].ToString());
                paradreescprovimento.CurrentValues.AddValue("" + dr3[3].ToString());
                paramqzpescprovimento.CurrentValues.AddValue(""+dr3[2].ToString());

                paramnumescexerce.CurrentValues.AddValue("" + Session["idqzp2"].ToString());
                paramnomeescexerce.CurrentValues.AddValue("" + dr4[1].ToString());
                paradreescexerce.CurrentValues.AddValue("" + dr4[3].ToString());
                paramqzpescexerce.CurrentValues.AddValue("" + dr4[2].ToString());
            }


            paramgruporecrutamento.CurrentValues.AddValue("" + Session["nome"].ToString());

            if (dr2[7].ToString() == "2")
            {
                parammodalidadeensino.CurrentValues.AddValue("Especial");
            }

            if (dr2[7].ToString() == "1")
            {
                parammodalidadeensino.CurrentValues.AddValue("regular");
            }


            if (dr2[8].ToString() == "1")
                paramnivelensino.CurrentValues.AddValue("Educação pré escolar");
               
            if (dr2[8].ToString() == "2")
                paramnivelensino.CurrentValues.AddValue("1º ciclo");
               
            if (dr2[8].ToString() == "3")
                paramnivelensino.CurrentValues.AddValue("2º ciclo");
               
            if (dr2[8].ToString() == "4")
                paramnivelensino.CurrentValues.AddValue("Secundário");
            //identificação de pedido

            if (dr2[9].ToString() == "1")
            {
                paramduracao.CurrentValues.AddValue("Um ano");
               
            }
            if (dr2[9].ToString() == "2")
            {
                paramduracao.CurrentValues.AddValue("Longa Duração");
               
            }
            parampartirde.CurrentValues.AddValue("" + dr2[10].ToString().Substring(0, 10));

           
            paramdatasub.CurrentValues.AddValue("" + dr2[11].ToString().Substring(0, 10));
         
        }

       

        
      #endregion
    }

pequeno help no code do aspx.cs
____________________________________________________

criação de um novo parametro
Código:
CrystalDecisions.Shared.ParameterField paramnome;
associação de parametro criado ao nome do mesmo no file crystal
Código:
 paramnome = reportDocument1.ParameterFields["Nome"];
atribuição de um valor a este parametro que neste caso esta a set puchado da bd
Código:
 paramnome.CurrentValues.AddValue("" + dr[1].ToString());
relicensa tem de ser o nome do teu file aspx

Código:
 reclicenca crReportDocument = new reclicenca();
criação de um novo documento de report

Código:
protected CrystalDecisions.CrystalReports.Engine.ReportDocument reportDocument1 = new ReportDocument();
onde crias o documento de report em formato pdf

Código:
 private void Load_Data()
        {

        MemoryStream oStream = new MemoryStream();

        InicializaReport(crReportDocument);


       oStream = (MemoryStream)reportDocument1.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);

            Response.Clear();

            Response.Buffer = true;

            Response.ContentType = "application/pdf";

            Response.BinaryWrite(oStream.ToArray());

            Response.End();






        }
name spaces que tens de por no aspx.cs

Código:
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;

using CrystalDecisions.Enterprise;
using System.IO;
depois no file .rpt tens de criar parameter fields tantos quantos os que queres por texto e xamar valores la dentro , depois basta arrastares os parametres para o formdesign do mesmo , e ele te poe duas caixinhas referente ao mesmo uma com o nome do mesmo (a sublinhada) e outra para que vai ser a que vai chamar o valor que poes no code cs.

basta so polas nas posições correctas que queres que ele mostre no resultado final

atenção o campo de texto que aparece sublinhado é o unico que lhe podes alterar o nome

isto estive agra a fazer em studio 2005 e funciona perfeitamente

espero que ajude
 
Última edição:
Back
Topo