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 { } }
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); }
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); }