Пример #1
0
        public void Gerar(string tituloDoDocumento, string nome = null, string cpf = null, string hash = null)
        {
            string fileName = Path.GetTempPath() + Guid.NewGuid().ToString() + ".pdf";

            this.pageState = new CustomPageState();
            //string fileName = System.Reflection.Assembly.GetEntryAssembly().Location + "\\" + string.Format("{0}.pdf", DateTime.Now.ToString(@"yyyyMMdd") + "_" + DateTime.Now.ToString(@"HHmmss"));
            using (FileStream fs = new FileStream(fileName, FileMode.Create))
            {
                //criando e estipulando o tipo da folha usada
                using (pdfDoc = new Document(PageSize.A4))
                {
                    try
                    {
                        //adcionando data de criação
                        pdfDoc.AddCreationDate();

                        //criando pdf em branco no disco
                        pdfWriter = PdfWriter.GetInstance(pdfDoc, fs);

                        //atrelando a classe de eventos da pagina
                        if (string.IsNullOrEmpty(nome) || string.IsNullOrEmpty(cpf) || string.IsNullOrEmpty(hash))
                        {
                            //estibulando o espaçamento das margens que queremos
                            pdfDoc.SetMargins(40, 40, 60, 50);
                            //para documentos não assinados
                            pdfWriter.PageEvent = new CabecalhoDocumentoNaoAssinado(tituloDoDocumento);
                        }
                        else
                        {
                            //estibulando o espaçamento das margens que queremos
                            pdfDoc.SetMargins(40, 40, 60, 80);
                            //para documentos assinados
                            pdfWriter.PageEvent = new CabecalhosDocumentoAssinado(tituloDoDocumento, nome, cpf, hash, pageState);
                        }
                        //ABRINDO DOCUMENTO PARA ALTERAÇÕES
                        pdfDoc.Open();

                        //Corpo do documento
                        Documento();

                        //identificando a última página
                        this.pageState.IsLastPage = true;

                        //fecha pdf
                        if (pdfDoc.IsOpen())
                        {
                            pdfDoc.Close();
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
            }
            if (File.Exists(fileName))
            {
                System.Diagnostics.Process.Start(fileName);
            }
        }
 public CabecalhosDocumentoAssinado(string tituloDoDocumento, string nome, string cpf, string hash, CustomPageState pageState)
 {
     this.TituloDoDocumento = tituloDoDocumento;
     this.Nome      = nome;
     this.CPF       = cpf;
     this.Hash      = hash;
     this.PageState = pageState;
 }