none
Exibindo dados em PDF com itextsharp RRS feed

  • Pergunta

  • Pessoal,

    Estou fazendo um cadastro de currículos, e estou usando o itextsharp  visualizar os dados em pdf, porem esbarrei na questão por exemplo da pessoal ter mais de uma experiência profissional, como fazer para exibir todas as experiencias, pois fiz o form mas só aparece uma.

    Segue o codigo para analise

    protected void btImprimir_Click(object sender, EventArgs e)
            {
                mdc = new DbConexaoDataContext();
    
                var nomecandidato = (from nomeuser in mdc.qrygerals
                                     where nomeuser.ID == Convert.ToInt32(Session["UsuarioID"])
                                     select nomeuser);
                foreach (var item in nomecandidato)
                {
    
                   string[] token = item.Nome.Split(' '); 
               
                if (token[0] == string.Empty)
                {
                    lblErro.Text = "Falta o nome no currículo.";
                    return;
                }
               
                else
                    {
                   visualizaCurriculoPDF(token[0], item);
                    }
            } 
            }
    
            private void visualizaCurriculoPDF(string nomeDoUsuario, qrygeral consulta)
            {
                //Cria um objeto da calsse Document e define o seu tamanho  para A4 e definie as propriedades: left, right, Top, Bottom Margin
                Document doc = new Document(iTextSharp.text.PageSize.A4, 36, 36, 72, 72);
                try
                {
                    string caminhoPDF = Server.MapPath(".") + @"\pdf\" + Request.QueryString["UsuarioID"] + "_" + nomeDoUsuario + ".pdf";
                    PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream(caminhoPDF, FileMode.Create));
                    //abre o documento para escrita
                    doc.Open();
                    
                    Paragraph p1 = new Paragraph();
                    p1.Add(new Phrase("CURRÍCULO VITAE\n\n\n", FontFactory.GetFont(FontFactory.HELVETICA, 16)));
                    p1.Add(new Phrase("Dados Pessoais\n", FontFactory.GetFont(FontFactory.HELVETICA, 14)));
             
                    //escreve o conteudo 
                    p1.Add(new Phrase(consulta.Nome + "\n"));
                    p1.Add(new Phrase("Endereço: " + consulta.Logradouro + " - " + consulta.Bairro + " - "+consulta.Cidade+" - "+consulta.Estado+" - "+consulta.CEP + "\n"));
                    p1.Add(new Phrase("CPF: " + consulta.CPF + "\n"));
                    p1.Add(new Phrase("Data de Nascimento: "+consulta.DatNascimento + "\n"));
                    p1.Add(new Phrase("Fone : " + consulta.Telefone + "\n"));
                    p1.Add(new Phrase("Cel. : " + consulta.Celular + "\n"));
                    p1.Add(new Phrase("Email : " + consulta.Email + "\n\n"));
    
                    p1.Add(new Phrase("Objetivos Profissional\n", FontFactory.GetFont(FontFactory.HELVETICA, 14)));
                    p1.Add(new Phrase("Área de Interesse : " + consulta.Interesse + "\n"));
                    p1.Add(new Phrase("Cargo : " + consulta.Cargo + "\n\n"));
                   
                    doc.Add(p1);
                                
    
                    Paragraph p2 = new Paragraph();
                    p2.Add(new Phrase("Formação Acadêmica :\n", FontFactory.GetFont(FontFactory.HELVETICA, 16)));
                    p2.Add(new Phrase("Tipo de Formação: "+consulta.FormacaoA + "\n"));
                    p2.Add(new Phrase("Curso: "+consulta.Curso + "\n"));
                    p2.Add(new Phrase("Estabelecimento: "+consulta.Estabelecimento + "\n"));
                    p2.Add(new Phrase("Inicio: "+consulta.DtInicio + "\n"));
                    p2.Add(new Phrase("Término: "+consulta.DtFim + "\n"));
                    p2.Add(new Phrase("Situação: "+consulta.Situação + "\n\n"));
                   
                    p2.Add(new Phrase("Experiência Profissional : \n", FontFactory.GetFont(FontFactory.HELVETICA, 16)));
                    p2.Add(new Phrase(consulta.Bairro + "\n\n\n"));
                    p2.Add(new Phrase("Habilidades  :\n", FontFactory.GetFont(FontFactory.HELVETICA, 16)));
                    p2.Add(new Phrase(consulta.EstadoEmissor + " \n\n\n"));
                    doc.Add(p2);
    
                    doc.Close();
    
                    WebClient client = new WebClient();
                    Byte[] buffer = client.DownloadData(caminhoPDF);
                    Response.ContentType = "application/pdf";
                    Response.AddHeader("content-length", buffer.Length.ToString());
                    Response.BinaryWrite(buffer);
    
    
                }
                catch (DocumentException dex)
                {
                    lblErro.Text = dex.Message;
                }
                catch (IOException ioex)
                {
                    lblErro.Text = ioex.Message;
                }
                catch (Exception ex)
                {
                    lblErro.Text = ex.Message;
                }
            }

    Grato,


    Julierme Felix - Aprendiz

    terça-feira, 4 de novembro de 2014 17:57

Todas as Respostas

  • Esse é o trecho que possui repetição?

    p2.Add(new Phrase("Experiência Profissional : \n", FontFactory.GetFont(FontFactory.HELVETICA, 16)));
                    p2.Add(new Phrase(consulta.Bairro + "\n\n\n"));
                    p2.Add(new Phrase("Habilidades  :\n", FontFactory.GetFont(FontFactory.HELVETICA, 16)));
                    p2.Add(new Phrase(consulta.EstadoEmissor + " \n\n\n"));
                    doc.Add(p2);

    Você não pode gravar as experiências em uma lista e iterar gerando o trecho acima?

    terça-feira, 4 de novembro de 2014 18:00
  • Esse é o trecho que possui repetição?

    p2.Add(new Phrase("Experiência Profissional : \n", FontFactory.GetFont(FontFactory.HELVETICA, 16)));
                    p2.Add(new Phrase(consulta.Bairro + "\n\n\n"));
                    p2.Add(new Phrase("Habilidades  :\n", FontFactory.GetFont(FontFactory.HELVETICA, 16)));
                    p2.Add(new Phrase(consulta.EstadoEmissor + " \n\n\n"));
                    doc.Add(p2);

    Você não pode gravar as experiências em uma lista e iterar gerando o trecho acima?


    Olá Deric este trecho esta ok.
    é porque estava testando.
    Veja o trecho com a formação profissional. vamos nos basear nesse trecho
     
    O que eu quero é o seguinte:
    O usuario cadastrou o curriculo e no cadastro ele disse que fez graduação no estabelecimento x durante 4 anos e etc, e fez pos-graduação no estabelecimento y e mestrado no estabelecimento xy

    Preciso dessas informações, porem só esta trazendo uma informação.

    p2.Add(new Phrase("Formação Acadêmica :\n", FontFactory.GetFont(FontFactory.HELVETICA, 16)));
                    p2.Add(new Phrase("Tipo de Formação: "+consulta.FormacaoA + "\n"));
                    p2.Add(new Phrase("Curso: "+consulta.Curso + "\n"));
                    p2.Add(new Phrase("Estabelecimento: "+consulta.Estabelecimento + "\n"));
                    p2.Add(new Phrase("Inicio: "+consulta.DtInicio + "\n"));
                    p2.Add(new Phrase("Término: "+consulta.DtFim + "\n"));
                    p2.Add(new Phrase("Situação: "+consulta.Situação + "\n\n"));

    a mesma coisa para a experiencia profissional. porem não preenchi todos os campos, pois ainda esta em construção.

    p2.Add(new Phrase("Experiência Profissional : \n", FontFactory.GetFont(FontFactory.HELVETICA, 16)));
                    p2.Add(new Phrase(consulta.Bairro + "\n\n\n"));



    grato,
    Julierme Felix

    Julierme Felix - Aprendiz

    terça-feira, 4 de novembro de 2014 18:34
  • Tenta fazer um foreach nessa parte abaixo:

    foreach(var cons in consulta)
    {
    p2.Add(new Phrase("Formação Acadêmica :\n", FontFactory.GetFont(FontFactory.HELVETICA, 16)));
                    p2.Add(new Phrase("Tipo de Formação: "+cons.FormacaoA + "\n"));
                    p2.Add(new Phrase("Curso: "+cons.Curso + "\n"));
                    p2.Add(new Phrase("Estabelecimento: "+cons.Estabelecimento + "\n"));
                    p2.Add(new Phrase("Inicio: "+cons.DtInicio + "\n"));
                    p2.Add(new Phrase("Término: "+cons.DtFim + "\n"));
                    p2.Add(new Phrase("Situação: "+cons.Situação + "\n\n"));
    }
    Creio que deva funcionar, utiliza a mesma logica para o outro também
    terça-feira, 4 de novembro de 2014 18:45
  • Tenta fazer um foreach nessa parte abaixo:

    foreach(var cons in consulta)
    {
    p2.Add(new Phrase("Formação Acadêmica :\n", FontFactory.GetFont(FontFactory.HELVETICA, 16)));
                    p2.Add(new Phrase("Tipo de Formação: "+cons.FormacaoA + "\n"));
                    p2.Add(new Phrase("Curso: "+cons.Curso + "\n"));
                    p2.Add(new Phrase("Estabelecimento: "+cons.Estabelecimento + "\n"));
                    p2.Add(new Phrase("Inicio: "+cons.DtInicio + "\n"));
                    p2.Add(new Phrase("Término: "+cons.DtFim + "\n"));
                    p2.Add(new Phrase("Situação: "+cons.Situação + "\n\n"));
    }
    Creio que deva funcionar, utiliza a mesma logica para o outro também

    deu o seguinte erro:

    Error    378    foreach statement cannot operate on variables of type 'Classes.qrygeral' because 'Classes.qrygeral' does not contain a public definition for 'GetEnumerator'    C:\inetpub\wwwroot\Talentos\curriculo\visualizarcurriculo.aspx.cs    104    17    Talentos


    Julierme Felix - Aprendiz

    terça-feira, 4 de novembro de 2014 20:17
  • no caso como esta sendo gravado a experiencia, é criado um outro registro ou é cumulativa em um unico registro
    terça-feira, 4 de novembro de 2014 20:24
  • no caso como esta sendo gravado a experiencia, é criado um outro registro ou é cumulativa em um unico registro

    é criado um outro registro

    Julierme Felix - Aprendiz

    quarta-feira, 5 de novembro de 2014 17:22
  • E o que liga os dois registros?

    Como você esta fazendo o select?
    quarta-feira, 5 de novembro de 2014 17:27
  • Caso tenha conseguido a solução finalize sua Thread marcando a resposta

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    domingo, 28 de junho de 2015 14:59