1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Exportar para PDF ou imprimir

Discussão em 'Web Development' iniciada por ButterflyEffect, 27 de Março de 2008. (Respostas: 6; Visualizações: 2468)

  1. ButterflyEffect

    ButterflyEffect Power Member

    Preciso de a informação processada numa form seja enviada para impressora com um botao imprimir ou gerar um pdf. Em aspnet. Alguém pode ajudarm!!!!
     
  2. 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,
     
  3. ButterflyEffect

    ButterflyEffect Power Member

    Mas no meu caso precisava de defenir apenas uma zona uma tabela ou um formulario a imprimir ou gerar pdf e apartir dai imprimi-a.Sabes ajudarm?
     
  4. 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,
     
  5. alfinete

    alfinete Power Member

    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
     
  6. oi,

    [alfinete]: será que me podias arranjar também esse código! é que tenho feito sempre desta forma...

    cumps,
     
  7. alfinete

    alfinete Power Member

    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: 29 de Março de 2008

Partilhar esta Página