Esempio n. 1
0
        public System.Int32 PdfAnexoDoc <T>(Arquivo.Arquivo arquivoTemplate, T dataSource, string documento)
        {
            try
            {
                var local = new Document(arquivoTemplate.Buffer);

                _configuracao.Load(local, dataSource);
                _configuracao.Configurar(local);

                local.MailMerge.FieldMergingCallback = new HandleField();
                local.NodeChangingCallback           = new HandleNodeChanging();

                ObjectMailMerge objDataSourceCabecalhoRodape = new ObjectMailMerge(_configuracao.CabecalhoRodape);

                local.MailMerge.Execute(objDataSourceCabecalhoRodape);

                dataSource = Assinantes(_configuracao.Assinantes, dataSource);

                ObjectMailMerge objDataSource = new ObjectMailMerge(dataSource);
                local.MailMerge.ExecuteWithRegions(objDataSource);

                ObjectMailMerge objDataSourceAnexo = new ObjectMailMerge(dataSource, documento);
                local.MailMerge.ExecuteWithRegions(objDataSourceAnexo);

                _configuracao.Executed(local, dataSource);

                return(local.PageCount);
            }
            finally
            {
            }
        }
Esempio n. 2
0
        public MemoryStream Pdf <T>(Arquivo.Arquivo arquivoTemplate, T dataSource)
        {
            MemoryStream file = null;

            try
            {
                _doc = new Document(arquivoTemplate.Buffer);

                _configuracao.Load(_doc, dataSource);
                _configuracao.Configurar(_doc);

                _doc.MailMerge.FieldMergingCallback = new HandleField();
                _doc.NodeChangingCallback           = new HandleNodeChanging();

                ObjectMailMerge objDataSourceCabecalhoRodape = new ObjectMailMerge(_configuracao.CabecalhoRodape);

                _doc.MailMerge.Execute(objDataSourceCabecalhoRodape);

                dataSource = Assinantes(_configuracao.Assinantes, dataSource);

                if (dataSource is DataSet)
                {
                    _doc.MailMerge.ExecuteWithRegions((dataSource as DataSet));
                }
                else
                {
                    ObjectMailMerge objDataSource = new ObjectMailMerge(dataSource);
                    _doc.MailMerge.ExecuteWithRegions(objDataSource);
                }

                _configuracao.Executed(_doc, dataSource);

                file = new MemoryStream();
                _doc.Save(file, SaveFormat.Pdf);
            }
            finally
            {
                if (arquivoTemplate.Buffer != null)
                {
                    arquivoTemplate.Buffer.Close();
                }
            }

            return(file);
        }
Esempio n. 3
0
        public MemoryStream Pdf <T>(Arquivo.Arquivo arquivoTemplate, T dataSource)
        {
            MemoryStream file = null;

            try
            {
                _doc = new Document(arquivoTemplate.Buffer);

                _configuracao.Load(_doc, dataSource);
                _configuracao.Configurar(_doc);

                _doc.MailMerge.FieldMergingCallback = new HandleField();
                _doc.NodeChangingCallback           = new HandleNodeChanging();

                ObjectMailMerge objDataSourceCabecalhoRodape = new ObjectMailMerge(_configuracao.CabecalhoRodape);

                //Dictionary<string, DadosFontes> ListaFontesCampos = new Dictionary<string, DadosFontes>();

                //foreach (Field field in _doc.Range.Fields)
                //{
                //    if (field.Type.Equals(FieldType.FieldMergeField))
                //    {
                //        Node currentNode = field.Start;
                //        bool isContinue = true;
                //        while (currentNode != null && isContinue)
                //        {
                //            if (currentNode.NodeType.Equals(NodeType.FieldEnd))
                //                isContinue = false;

                //            if (currentNode.NodeType.Equals(NodeType.Run))
                //            {
                //             //   if (((Run)currentNode).Font.Bold)
                //               // {
                //               //     ListaFontesCampos.Add(((Run)currentNode).ToTxt() + System.Guid.NewGuid().ToString(), ((Run)currentNode).Font);
                //               //     break;
                //              //  }
                //               // else
                //               // {
                //                if (((Run)currentNode).Text.IndexOf("MERGEFIELD") < 0)
                //                {
                //                    Run tmpRun = ((Run)currentNode);
                //                    DadosFontes _tmp;
                //                    if (tmpRun.Text.IndexOf("OrgaoContato") >= 0)
                //                        _tmp = new DadosFontes(tmpRun.Font, tmpRun.Font.Bold, (int)tmpRun.Font.Size);
                //                    else
                //                    {
                //                        if (tmpRun.Font.Size < 5)
                //                        {
                //                            tmpRun.Font.Size = 9;
                //                            tmpRun.Font.Name = "Arial Narrow";
                //                            _tmp = new DadosFontes(tmpRun.Font, tmpRun.Font.Bold, (int)tmpRun.Font.Size);

                //                        }
                //                        else
                //                            _tmp = new DadosFontes(tmpRun.ParentParagraph.ParagraphBreakFont, tmpRun.Font.Bold, (int)tmpRun.Font.Size);
                //                    }
                //                    ListaFontesCampos.Add(((Run)currentNode).ToTxt() + System.Guid.NewGuid().ToString(), _tmp);
                //                }
                //              //  }

                //            }

                //            Node nextNode = currentNode.NextPreOrder(currentNode.Document);
                //            currentNode = nextNode;
                //        }
                //    }
                //}

                //((HandleField)_doc.MailMerge.FieldMergingCallback).camposBold = ListaFontesCampos;


                _doc.MailMerge.Execute(objDataSourceCabecalhoRodape);

                dataSource = Assinantes(_configuracao.Assinantes, dataSource);


                if (dataSource is DataSet)
                {
                    _doc.MailMerge.ExecuteWithRegions((dataSource as DataSet));
                }
                else
                {
                    ObjectMailMerge objDataSource = new ObjectMailMerge(dataSource);
                    _doc.MailMerge.ExecuteWithRegions(objDataSource);
                }

                _configuracao.Executed(_doc, dataSource);

                file = new MemoryStream();
                _doc.Save(file, SaveFormat.Pdf);
            }
            finally
            {
                if (arquivoTemplate.Buffer != null)
                {
                    arquivoTemplate.Buffer.Close();
                }
            }

            return(file);
        }