public MemoryStream PdfAnexo <T>(Arquivo.Arquivo arquivoTemplate, T dataSource, string documento) { 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); ObjectMailMerge objDataSource = new ObjectMailMerge(dataSource); _doc.MailMerge.ExecuteWithRegions(objDataSource); ObjectMailMerge objDataSourceAnexo = new ObjectMailMerge(dataSource, documento); _doc.MailMerge.ExecuteWithRegions(objDataSourceAnexo); _configuracao.Executed(_doc, dataSource); file = new MemoryStream(); _doc.Save(file, SaveFormat.Pdf); } finally { if (arquivoTemplate.Buffer != null) { arquivoTemplate.Buffer.Close(); } } return(file); }