private void InsertPageHeaderFooter(WordDocument doc, IWSection section1) { // Add a new paragraph for header to the document. IWParagraph headerPar = new WParagraph(doc); // Add a new table to the header IWTable table = section1.HeadersFooters.Header.AddTable(); RowFormat format = new RowFormat(); // Setting Single table border style. format.Borders.BorderType = Syncfusion.DocIO.DLS.BorderStyle.Single; // Inserting table with a row and two columns. table.ResetCells(1, 2, format, 265); // Inserting logo image to the table first cell. headerPar = table[0, 0].AddParagraph() as WParagraph; #if NETCORE headerPar.AppendPicture(Image.FromFile(@"..\..\..\..\..\..\..\common\images\DocIO\Northwind_logo.png")); #else headerPar.AppendPicture(Image.FromFile(@"..\..\..\..\..\..\common\images\DocIO\Northwind_logo.png")); #endif //Set Image size. (headerPar.Items[0] as WPicture).Width = 232.5f; (headerPar.Items[0] as WPicture).Height = 54.75f; // Inserting text to the table second cell. headerPar = table[0, 1].AddParagraph() as WParagraph; IWTextRange txt = headerPar.AppendText("Company Headquarters,\n2501 Aerial Center Parkway,\nSuite 110, Morrisville, NC 27560,\nTEL 1-888-936-8638."); txt.CharacterFormat.FontSize = 12; txt.CharacterFormat.CharacterSpacing = 1.7f; headerPar.ParagraphFormat.HorizontalAlignment = Syncfusion.DocIO.DLS.HorizontalAlignment.Right; // Add a footer paragraph text to the document. WParagraph footerPar = new WParagraph(doc); footerPar.ParagraphFormat.Tabs.AddTab(523f, TabJustification.Right, TabLeader.NoLeader); // Add text. footerPar.AppendText("Copyright Northwind Inc. 2001 - 2017"); // Add page and Number of pages field to the document. footerPar.AppendText("\tPage "); IWField ff = footerPar.AppendField("Page", Syncfusion.DocIO.FieldType.FieldPage); section1.HeadersFooters.Footer.Paragraphs.Add(footerPar); #region Page Number Settings section1.PageSetup.RestartPageNumbering = true; section1.PageSetup.PageStartingNumber = Convert.ToInt32(this.numericUpDown1.Value); section1.PageSetup.PageNumberStyle = (PageNumberStyle)Enum.Parse(typeof(PageNumberStyle), this.comboBox1.SelectedItem.ToString(), true); #endregion }
static void Main(string[] args) { //Creates new Word document instance for Word processing using (WordDocument document = new WordDocument()) { //Opens the input Word document Stream docStream = File.OpenRead(Path.GetFullPath(@"../../../Template.docx")); document.Open(docStream, FormatType.Docx); docStream.Dispose(); //Finds all the image placeholder text in the Word document. TextSelection[] textSelections = document.FindAll(new Regex("^//(.*)")); for (int i = 0; i < textSelections.Length; i++) { //Replaces the image placeholder text with desired image. Stream imageStream = File.OpenRead(Path.GetFullPath(@"../../../" + textSelections[i].SelectedText + ".png")); WParagraph paragraph = new WParagraph(document); WPicture picture = paragraph.AppendPicture(imageStream) as WPicture; imageStream.Dispose(); TextSelection newSelection = new TextSelection(paragraph, 0, 1); TextBodyPart bodyPart = new TextBodyPart(document); bodyPart.BodyItems.Add(paragraph); document.Replace(textSelections[i].SelectedText, bodyPart, true, true); } //Saves the resultant file in the given path docStream = File.Create(Path.GetFullPath(@"Result.docx")); document.Save(docStream, FormatType.Docx); docStream.Dispose(); } }
private void InsertFirstPageHeaderFooter(WordDocument doc, IWSection section) { Assembly execAssm = typeof(HeadersAndFootersDemo).GetTypeInfo().Assembly; Stream inputStream = execAssm.GetManifestResourceStream("Syncfusion.SampleBrowser.UWP.DocIO.DocIO.Assets.Northwind_logo.png"); // Add a new paragraph for header to the document. IWParagraph headerPar = new WParagraph(doc); // Add a new table to the header. IWTable table = section.HeadersFooters.FirstPageHeader.AddTable(); RowFormat format = new RowFormat(); // Setting cleared table border style. format.Borders.BorderType = Syncfusion.DocIO.DLS.BorderStyle.Cleared; // Inserting table with a row and two columns. table.ResetCells(1, 2, format, 265); // Inserting logo image to the table first cell. headerPar = table[0, 0].AddParagraph() as WParagraph; headerPar.AppendPicture(inputStream); //Set Image size (headerPar.Items[0] as WPicture).Width = 232.5f; (headerPar.Items[0] as WPicture).Height = 54.75f; // Inserting text to the table second cell. headerPar = table[0, 1].AddParagraph() as WParagraph; IWTextRange txt = headerPar.AppendText("Company Headquarters,\n2501 Aerial Center Parkway,\nSuite 110, Morrisville, NC 27560,\nTEL 1-888-936-8638."); txt.CharacterFormat.FontSize = 12; txt.CharacterFormat.CharacterSpacing = 1.7f; headerPar.ParagraphFormat.HorizontalAlignment = Syncfusion.DocIO.DLS.HorizontalAlignment.Right; // Add a new paragraph to the header with address text. headerPar = new WParagraph(doc); headerPar.ParagraphFormat.HorizontalAlignment = Syncfusion.DocIO.DLS.HorizontalAlignment.Center; txt = headerPar.AppendText("\nFirst Page Header"); txt.CharacterFormat.CharacterSpacing = 1.7f; section.HeadersFooters.FirstPageHeader.Paragraphs.Add(headerPar); // Add a footer paragraph text to the document. WParagraph footerPar = new WParagraph(doc); footerPar.ParagraphFormat.Tabs.AddTab(523f, TabJustification.Right, TabLeader.NoLeader); // Add text. footerPar.AppendText("Copyright Northwind Inc. 2001 - 2015"); // Add page and Number of pages field to the document. footerPar.AppendText("\tFirst Page "); footerPar.AppendField("Page", FieldType.FieldPage); section.HeadersFooters.FirstPageFooter.Paragraphs.Add(footerPar); #region Page Number Settings section.PageSetup.RestartPageNumbering = true; section.PageSetup.PageStartingNumber = Convert.ToInt32(this.numericUpDown1.Value); section.PageSetup.PageNumberStyle = (PageNumberStyle)Enum.Parse(typeof(PageNumberStyle), this.comboBox1.SelectedItem.ToString(), true); #endregion }
private void InsertFirstPageHeaderFooter(WordDocument doc, IWSection section) { // Add a new paragraph for header to the document. IWParagraph headerPar = new WParagraph(doc); // Add a new table to the header. IWTable table = section.HeadersFooters.FirstPageHeader.AddTable(); RowFormat format = new RowFormat(); // Setting cleared table border style. format.Borders.BorderType = Syncfusion.DocIO.DLS.BorderStyle.Cleared; // Inserting table with a row and two columns. table.ResetCells(1, 2, format, 265); // Inserting logo image to the table first cell. headerPar = table[0, 0].AddParagraph() as WParagraph; string basePath = _hostingEnvironment.WebRootPath; FileStream imageStream = new FileStream(basePath + @"/images/DocIO/Northwind_logo.png", FileMode.Open, FileAccess.Read); headerPar.AppendPicture(imageStream); //Set Image size (headerPar.Items[0] as WPicture).Width = 232.5f; (headerPar.Items[0] as WPicture).Height = 54.75f; // Inserting text to the table second cell. headerPar = table[0, 1].AddParagraph() as WParagraph; IWTextRange txt = headerPar.AppendText("Company Headquarters,\n2501 Aerial Center Parkway,\nSuite 110, Morrisville, NC 27560,\nTEL 1-888-936-8638."); txt.CharacterFormat.FontSize = 12; txt.CharacterFormat.CharacterSpacing = 1.7f; headerPar.ParagraphFormat.HorizontalAlignment = Syncfusion.DocIO.DLS.HorizontalAlignment.Right; // Add a new paragraph to the header with address text. headerPar = new WParagraph(doc); headerPar.ParagraphFormat.HorizontalAlignment = Syncfusion.DocIO.DLS.HorizontalAlignment.Center; txt = headerPar.AppendText("\nFirst Page Header"); txt.CharacterFormat.CharacterSpacing = 1.7f; section.HeadersFooters.FirstPageHeader.Paragraphs.Add(headerPar); // Add a footer paragraph text to the document. WParagraph footerPar = new WParagraph(doc); footerPar.ParagraphFormat.Tabs.AddTab(523f, TabJustification.Right, TabLeader.NoLeader); // Add text. footerPar.AppendText("Copyright Northwind Inc. 2001 - 2017"); // Add page and Number of pages field to the document. footerPar.AppendText("\tFirst Page "); footerPar.AppendField("Page", FieldType.FieldPage); section.HeadersFooters.FirstPageFooter.Paragraphs.Add(footerPar); #region Page Number Settings section.PageSetup.RestartPageNumbering = true; section.PageSetup.PageStartingNumber = 1; section.PageSetup.PageNumberStyle = PageNumberStyle.Arabic; #endregion Page Number Settings }
private void InsertPageHeaderFooter(WordDocument doc, IWSection section1) { // Add a new paragraph for header to the document. IWParagraph headerPar = new WParagraph(doc); // Add a new table to the header IWTable table = section1.HeadersFooters.Header.AddTable(); RowFormat format = new RowFormat(); // Setting Single table border style. format.Borders.BorderType = Syncfusion.DocIO.DLS.BorderStyle.Single; // Inserting table with a row and two columns. table.ResetCells(1, 2, format, 265); // Inserting logo image to the table first cell. headerPar = table[0, 0].AddParagraph() as WParagraph; string s = ResolveApplicationDataPath("Northwind_logo.png", "Content\\DocIO"); headerPar.AppendPicture(System.Drawing.Image.FromFile(s)); //Set Image size. (headerPar.Items[0] as WPicture).Width = 232.5f; (headerPar.Items[0] as WPicture).Height = 54.75f; // Inserting text to the table second cell. headerPar = table[0, 1].AddParagraph() as WParagraph; IWTextRange txt = headerPar.AppendText("Company Headquarters,\n2501 Aerial Center Parkway,\nSuite 110, Morrisville, NC 27560,\nTEL 1-888-936-8638."); txt.CharacterFormat.FontSize = 12; txt.CharacterFormat.CharacterSpacing = 1.7f; headerPar.ParagraphFormat.HorizontalAlignment = Syncfusion.DocIO.DLS.HorizontalAlignment.Right; // Add a footer paragraph text to the document. WParagraph footerPar = new WParagraph(doc); footerPar.ParagraphFormat.Tabs.AddTab(523f, TabJustification.Right, TabLeader.NoLeader); // Add text. footerPar.AppendText("Copyright Northwind Inc. 2001 - 2017"); // Add page and Number of pages field to the document. footerPar.AppendText("\tPage "); IWField ff = footerPar.AppendField("Page", FieldType.FieldPage); section1.HeadersFooters.Footer.Paragraphs.Add(footerPar); #region Page Number Settings section1.PageSetup.RestartPageNumbering = true; section1.PageSetup.PageStartingNumber = 1; section1.PageSetup.PageNumberStyle = PageNumberStyle.Arabic; #endregion Page Number Settings }
public ActionResult Word(int id, int type, byte[] image, bool pdf = false) { var dba = new ApplicationDbContext(); int idCustomer; string idConsultant; global::Interview.Interview interview = null; Campaign campaign = null; byte[] byteArrayImg; if (type == 1 || type == 2) { idCustomer = db.Interviews.Where(i => i.IdCampaign == id).Include(i => i.Campaign.Customer).Select(i => i.Campaign.Customer.IdCustomer).FirstOrDefault(); idConsultant = db.Interviews.Where(i => i.IdCampaign == id).Select(u => u.Id).FirstOrDefault(); var idFirm = db.Users.Where(u => u.Id == idConsultant).Select(u => u.IdFirm).FirstOrDefault(); byteArrayImg = ImageController.GetImage("Firms", idFirm.ToString(), true); } else { idCustomer = db.Interviews.Where(i => i.IdInterview == id).Include(i => i.Campaign.Customer).Select(i => i.Campaign.Customer.IdCustomer).FirstOrDefault(); idConsultant = db.Interviews.Where(i => i.IdInterview == id).Select(u => u.Id).FirstOrDefault(); byteArrayImg = ImageController.GetImage("Users", idConsultant, true); } var byteArrayCust = ImageController.GetImage("Customers", idCustomer.ToString(), true); Stream streamCust = new MemoryStream(byteArrayCust); Stream streamImg = new MemoryStream(byteArrayImg); WordDocument document = new WordDocument(); IWSection section = document.AddSection(); section.PageSetup.DifferentFirstPage = true; section.PageSetup.InsertPageNumbers(false, PageNumberAlignment.Center); section.PageSetup.Margins.Left = 50; section.PageSetup.Margins.Right = 50; // Add a new paragraph for header to the document. IWParagraph headerPar = new WParagraph(document); // Add a new table to the header. IWTable table = section.HeadersFooters.FirstPageHeader.AddTable(); // Styles const string font = "Segoe UI"; Style styleTitle = (WParagraphStyle)document.AddParagraphStyle("Title"); styleTitle.CharacterFormat.FontName = font; styleTitle.CharacterFormat.FontSize = 25; styleTitle.CharacterFormat.TextColor = Color.FromArgb(31, 73, 125); Style stylePNode = (WParagraphStyle)document.AddParagraphStyle("PNode"); stylePNode.CharacterFormat.FontName = font; stylePNode.CharacterFormat.TextColor = Color.FromArgb(238, 131, 0); stylePNode.CharacterFormat.FontSize = 20; Style styleNode = (WParagraphStyle)document.AddParagraphStyle("Node"); styleNode.CharacterFormat.FontName = font; styleNode.CharacterFormat.TextColor = Color.FromArgb(195, 23, 0); styleNode.CharacterFormat.FontSize = 17; Style styleQuestion = (WParagraphStyle)document.AddParagraphStyle("Question"); styleQuestion.CharacterFormat.FontName = font; styleQuestion.CharacterFormat.Bold = true; styleQuestion.CharacterFormat.FontSize = 11; Style styleAnswer = (WParagraphStyle)document.AddParagraphStyle("Answer"); styleAnswer.CharacterFormat.FontName = font; styleAnswer.CharacterFormat.FontSize = 11; styleAnswer.CharacterFormat.TextColor = Color.FromArgb(31, 73, 125); Style styleList = (WParagraphStyle)document.AddParagraphStyle("List"); styleList.CharacterFormat.FontName = font; styleList.CharacterFormat.TextColor = Color.FromArgb(51, 132, 204); styleList.CharacterFormat.FontSize = 11; styleList.CharacterFormat.UnderlineStyle = UnderlineStyle.Single; Style styleComment = (WParagraphStyle)document.AddParagraphStyle("Comment"); styleComment.CharacterFormat.FontName = font; styleComment.CharacterFormat.Italic = true; styleComment.CharacterFormat.FontSize = 11; var format = new RowFormat(); // Setting cleared table border style. format.Borders.BorderType = BorderStyle.Cleared; // Inserting table with a row and two columns. table.ResetCells(1, 2, format, 265); IWTextRange textRange; // Inserting logo image to the table cells. headerPar = table[0, 0].AddParagraph() as WParagraph; headerPar.AppendPicture(Image.FromStream(streamImg)); (headerPar.Items[0] as WPicture).Width = 50; (headerPar.Items[0] as WPicture).Height = 50; headerPar.AppendText(Environment.NewLine); var userName = db.Users.Find(idConsultant).FullName; switch (type) { case 1: case 2: textRange = headerPar.AppendText("Manager: " + userName); textRange.CharacterFormat.FontName = font; headerPar.AppendText(Environment.NewLine); textRange = headerPar.AppendText("Type : Campaign"); textRange.CharacterFormat.FontName = font; break; case 3: case 4: textRange = headerPar.AppendText("Consultant: " + userName); textRange.CharacterFormat.FontName = font; headerPar.AppendText(Environment.NewLine); textRange = headerPar.AppendText("Type: Interview"); textRange.CharacterFormat.FontName = font; break; } headerPar.ParagraphFormat.HorizontalAlignment = HorizontalAlignment.Left; var customerName = db.Customers.Find(idCustomer).Name; var industryName = db.Customers.Where(c => c.IdCustomer == idCustomer) .Include(c => c.Industry) .Select(c => c.Industry.Name).FirstOrDefault(); // Inserting text to the table second cell. headerPar = table[0, 1].AddParagraph() as WParagraph; headerPar.AppendPicture(Image.FromStream(streamCust)); ((WPicture)headerPar.Items[0]).Width = 50; ((WPicture)headerPar.Items[0]).Height = 50; headerPar.AppendText(Environment.NewLine); headerPar.AppendText("Customer: " + customerName); headerPar.AppendText(Environment.NewLine); headerPar.AppendText("Industry: " + industryName); headerPar.ParagraphFormat.HorizontalAlignment = HorizontalAlignment.Right; section = document.AddSection(); section.BreakCode = SectionBreakCode.NoBreak; IWParagraph paragraph = section.AddParagraph(); //TableOfContent toc = paragraph.AppendTOC(1, 3); //toc.UseHeadingStyles = false; //toc.SetTOCLevelStyle(1, "Title"); //toc.SetTOCLevelStyle(2, "PNode"); //toc.SetTOCLevelStyle(3, "Node"); if (type == 1 || type == 2) { campaign = db.Campaigns.Find(id); var idQuestionnaire = db.Interviews.Where(i => i.Campaign.IdCampaign == id).Include(i => i.Campaign).Select(i => i.Campaign.IdQuestionnaire).FirstOrDefault(); var questions = db.Questions.Where(q => q.IdQuestionnaire == idQuestionnaire); var questionnairename = db.Questionnaires.Find(idQuestionnaire).Name; var interviewees = db.CandidateCampaigns.Include(cc => cc.Candidate).Include(x => x.Group) .Where(cc => cc.IdCampaign == campaign.IdCampaign) .Select(x => x.Candidate); var consultants = db.Campaigns.Where(c => c.IdCampaign == campaign.IdCampaign) .Include(c => c.ApplicationUsers) .Select(c => c.ApplicationUsers); string start = ""; if (campaign.StartDate != null) { start = campaign.StartDate.Value.ToShortDateString(); } var end = ""; if (campaign.EndDate != null) { end = campaign.EndDate.Value.ToShortDateString(); } paragraph.AppendText(Environment.NewLine + Environment.NewLine + Environment.NewLine); textRange = paragraph.AppendText("Campaign: " + campaign.Name); paragraph.ApplyStyle("Title"); paragraph.AppendText(Environment.NewLine + Environment.NewLine); paragraph = section.AddParagraph(); textRange = paragraph.AppendText("Start: " + start + " -> Expected End: " + end); textRange.CharacterFormat.FontName = font; paragraph.ParagraphFormat.HorizontalAlignment = HorizontalAlignment.Left; paragraph.AppendText(Environment.NewLine + Environment.NewLine); textRange = paragraph.AppendText("Questionnaire: " + questionnairename); textRange.CharacterFormat.FontName = font; paragraph.AppendText(Environment.NewLine + Environment.NewLine); textRange = paragraph.AppendText("Description: " + campaign.Description); textRange.CharacterFormat.FontName = font; paragraph.AppendText(Environment.NewLine + Environment.NewLine); if (type == 2 && !string.IsNullOrEmpty(campaign.Comment)) { textRange = paragraph.AppendText("Comment: " + campaign.Comment); textRange.CharacterFormat.FontName = font; } paragraph.AppendText(Environment.NewLine + Environment.NewLine); paragraph = section.AddParagraph(); paragraph.AppendText("Consultants: "); paragraph.ApplyStyle("List"); foreach (var consultant in consultants) { paragraph = section.AddParagraph(); textRange = paragraph.AppendText(consultant.FullName); textRange.CharacterFormat.FontName = font; paragraph.ListFormat.ApplyDefBulletStyle(); } var dbg = new ApplicationDbContext(); if (type == 2) { paragraph = section.AddParagraph(); paragraph.AppendText("Interviewees: "); paragraph.ApplyStyle("List"); foreach (var interviewee in interviewees) { paragraph = section.AddParagraph(); var group = dbg.CandidateCampaigns.Where(cc => cc.IdCandidate == interviewee.IdCandidate).Select(cc => cc.Group).FirstOrDefault(); var groupname = ""; if (group != null) { groupname = group.Name; } textRange = paragraph.AppendText(interviewee.FullNameAndFunction + " - " + groupname); textRange.CharacterFormat.FontName = font; paragraph.ListFormat.ApplyDefBulletStyle(); } } // Nodes var fullnodes = db.Nodes.Where(x => x.IdQuestionnaire == idQuestionnaire).ToList(); if (fullnodes.Any()) { var root = fullnodes.FirstOrDefault(r => r.IsRoot); if (root != null) { var nodes = fullnodes.Where(n => !n.IsRoot && n.IdParentNode != root.IdNode).ToList(); var pnodes = fullnodes.FindAll(p => p.IdParentNode == root.IdNode).ToList(); foreach (var pnode in pnodes) { section = document.AddSection(); paragraph = section.AddParagraph(); paragraph.AppendText(Environment.NewLine); paragraph.AppendText(pnode.Name); paragraph.ApplyStyle("PNode"); if (db.Questions.Any(x => x.IdNode == pnode.IdNode)) { foreach (var question in questions.Where(q => q.IdNode == pnode.IdNode)) { paragraph = section.AddParagraph(); paragraph.AppendText(question.Description); paragraph.ApplyStyle("Question"); paragraph.AppendText(Environment.NewLine); if (!question.IsRelevant) { textRange.CharacterFormat.TextColor = Color.DimGray; } section.AddParagraph().AppendText(Environment.NewLine); var dbi = new ApplicationDbContext(); foreach (var answer in dba.Answers.Where(a => a.IdQuestion == question.IdQuestion && a.Interview.IdCampaign == campaign.IdCampaign && !a.Interview.Deleted)) { var intervname = dbi.Interviews.Find(answer.IdInterview).Name; paragraph = section.AddParagraph(); paragraph.AppendText("Answer from Interview " + intervname + ":"); paragraph.ApplyStyle("Answer"); if (answer != null && answer.IntervieweeAnswer != null) { if (question.AnswerType == AnswerType.Integer) { textRange = paragraph.AppendText(answer.IntervieweeAnswer + " / 5"); } else { textRange = paragraph.AppendText(answer.IntervieweeAnswer); } textRange.CharacterFormat.FontName = font; textRange.CharacterFormat.Bold = true; paragraph.AppendText(Environment.NewLine); } else { paragraph = section.AddParagraph(); textRange = paragraph.AppendText("No answer yet"); textRange.CharacterFormat.FontName = font; textRange.CharacterFormat.TextColor = Color.DarkGray; paragraph.AppendText(Environment.NewLine); } if (type == 2 && !string.IsNullOrEmpty(answer.ConsultantComment)) { if (answer.Comment != null) { paragraph = section.AddParagraph(); paragraph.AppendText("Comment: " + answer.Comment); paragraph.ApplyStyle("Comment"); paragraph.AppendText(Environment.NewLine); } paragraph = section.AddParagraph(); paragraph.AppendText("Consultant's comment: " + answer.ConsultantComment); paragraph.ApplyStyle("Comment"); paragraph.AppendText(Environment.NewLine); } } } } else { foreach (var node in nodes.Where(n => n.IdParentNode == pnode.IdNode)) { paragraph = section.AddParagraph(); paragraph.AppendText(Environment.NewLine); paragraph.AppendText(" > " + node.Name); paragraph.ApplyStyle("Node"); paragraph.AppendText(Environment.NewLine); foreach (var question in questions.Where(q => q.IdNode == node.IdNode)) { paragraph = section.AddParagraph(); paragraph.AppendText(question.Description); paragraph.ApplyStyle("Question"); paragraph.AppendText(Environment.NewLine); if (!question.IsRelevant) { textRange.CharacterFormat.TextColor = Color.DimGray; } var dbi = new ApplicationDbContext(); foreach (var answer in dba.Answers.Where(a => a.IdQuestion == question.IdQuestion && a.Interview.IdCampaign == campaign.IdCampaign && !a.Interview.Deleted)) { var intervname = dbi.Interviews.Find(answer.IdInterview).Name; paragraph = section.AddParagraph(); paragraph.AppendText("Answer from Interview " + intervname + ":"); paragraph.ApplyStyle("Answer"); if (answer.IntervieweeAnswer != null) { paragraph = section.AddParagraph(); if (question.AnswerType == AnswerType.Integer) { textRange = paragraph.AppendText(answer.IntervieweeAnswer + " / 5"); } else { textRange = paragraph.AppendText(answer.IntervieweeAnswer); } textRange.CharacterFormat.FontName = font; textRange.CharacterFormat.Bold = true; paragraph.AppendText(Environment.NewLine); } else { paragraph = section.AddParagraph(); textRange = paragraph.AppendText("No answer yet"); textRange.CharacterFormat.FontName = font; textRange.CharacterFormat.TextColor = Color.DarkGray; paragraph.AppendText(Environment.NewLine); } if (type == 2 && !string.IsNullOrEmpty(answer.ConsultantComment)) { if (answer.Comment != null) { paragraph = section.AddParagraph(); paragraph.AppendText("Comment: " + answer.Comment); paragraph.ApplyStyle("Comment"); paragraph.AppendText(Environment.NewLine); } paragraph = section.AddParagraph(); paragraph.AppendText("Consultant's comment: " + answer.ConsultantComment); paragraph.ApplyStyle("Comment"); paragraph.AppendText(Environment.NewLine); } } } } } } } } } else if (type == 3 || type == 4) { interview = db.Interviews.Find(id); var idInterviewee = db.Interviewees.Where(i => i.IdInterview == id).Select(i => i.IdCandidate).FirstOrDefault(); var idQuestionnaire = db.Interviews.Where(i => i.IdInterview == id).Include(i => i.Campaign).Select(i => i.Campaign.IdQuestionnaire).FirstOrDefault(); var questions = db.Questions.Where(q => q.IdQuestionnaire == idQuestionnaire); var interviewees = db.Interviewees.Include(cc => cc.Candidate) .Where(cc => cc.IdInterview == interview.IdInterview) .Select(x => x.Candidate); var consultant = interview.ApplicationUsers; paragraph.AppendText(Environment.NewLine + Environment.NewLine + Environment.NewLine); paragraph.AppendText("Interview: " + interview.Name); paragraph.ApplyStyle("Title"); paragraph.AppendText(Environment.NewLine + Environment.NewLine); paragraph = section.AddParagraph(); textRange = paragraph.AppendText("Date: " + interview.Date.ToShortDateString() + Environment.NewLine); textRange.CharacterFormat.FontName = font; paragraph.AppendText(Environment.NewLine + Environment.NewLine); textRange = paragraph.AppendText("Description: " + interview.Description); textRange.CharacterFormat.FontName = font; paragraph.AppendText(Environment.NewLine + Environment.NewLine); if (type == 4 && interview.Comment != null) { textRange = paragraph.AppendText("Comment: " + interview.Comment + Environment.NewLine); textRange.CharacterFormat.FontName = font; } paragraph.ParagraphFormat.HorizontalAlignment = HorizontalAlignment.Left; paragraph.AppendText(Environment.NewLine + Environment.NewLine); paragraph = section.AddParagraph(); paragraph.AppendText("Consultants: "); paragraph.ApplyStyle("List"); paragraph = section.AddParagraph(); textRange = paragraph.AppendText(consultant.FullName); textRange.CharacterFormat.FontName = font; paragraph.ListFormat.ApplyDefBulletStyle(); paragraph = section.AddParagraph(); paragraph.AppendText("Interviewee(s): "); paragraph.ApplyStyle("List"); var dbc = new ApplicationDbContext(); foreach (var i in interviewees) { paragraph = section.AddParagraph(); var group = dbc.CandidateCampaigns.Where( cc => cc.IdCandidate == i.IdCandidate && cc.IdCampaign == interview.IdCampaign).Select(cc => cc.Group).FirstOrDefault(); var groupname = ""; if (group != null) { groupname = group.Name; } textRange = paragraph.AppendText(i.FullNameAndFunction + " - " + groupname); textRange.CharacterFormat.FontName = font; textRange.CharacterFormat.Bold = false; paragraph.ListFormat.ApplyDefBulletStyle(); } var fullnodes = db.Nodes.Where(x => x.IdQuestionnaire == idQuestionnaire).ToList(); if (fullnodes.Any()) { var root = fullnodes.FirstOrDefault(r => r.IsRoot); if (root != null) { var nodes = fullnodes.Where(n => !n.IsRoot && n.IdParentNode != root.IdNode).ToList(); var pnodes = fullnodes.FindAll(p => p.IdParentNode == root.IdNode).ToList(); foreach (var pnode in pnodes) { var score = db.CustomScores.FirstOrDefault(c => c.IdNode == pnode.IdNode && c.IdInterview == interview.IdInterview); var val = 0; if (score != null) { val = score.Value != null ? score.Value : 0; } section = document.AddSection(); paragraph = section.AddParagraph(); paragraph.AppendText(Environment.NewLine); paragraph.AppendText(pnode.Name + " " + val + " / 5"); paragraph.ApplyStyle("PNode"); if (db.Questions.Any(x => x.IdNode == pnode.IdNode)) { foreach (var question in questions.Where(q => q.IdNode == pnode.IdNode)) { var answer = dba.Answers.FirstOrDefault(a => a.IdQuestion == question.IdQuestion && a.IdInterview == id); paragraph = section.AddParagraph(); paragraph.AppendText(question.Description); paragraph.ApplyStyle("Question"); paragraph.AppendText(Environment.NewLine); if (answer != null && answer.IntervieweeAnswer != null) { paragraph = section.AddParagraph(); paragraph.AppendText("Answer:"); paragraph.ApplyStyle("Answer"); paragraph = section.AddParagraph(); if (question.AnswerType == AnswerType.Integer) { paragraph.AppendText(answer.IntervieweeAnswer + " / 5"); } else { paragraph.AppendText(answer.IntervieweeAnswer); } textRange.CharacterFormat.FontName = font; textRange.CharacterFormat.Bold = true; paragraph.AppendText(Environment.NewLine); if (type == 4 && !string.IsNullOrEmpty(answer.ConsultantComment)) { if (answer.Comment != null) { paragraph = section.AddParagraph(); paragraph.AppendText("Comment: " + answer.Comment); paragraph.ApplyStyle("Comment"); paragraph.AppendText(Environment.NewLine); } paragraph = section.AddParagraph(); paragraph.AppendText("Consultant's comment: " + answer.ConsultantComment); paragraph.ApplyStyle("Comment"); paragraph.AppendText(Environment.NewLine); } } else { paragraph = section.AddParagraph(); textRange = paragraph.AppendText("No answer yet"); textRange.CharacterFormat.FontName = font; textRange.CharacterFormat.TextColor = Color.DarkGray; paragraph.AppendText(Environment.NewLine); } } } else { foreach (var node in nodes.Where(n => n.IdParentNode == pnode.IdNode)) { paragraph = section.AddParagraph(); paragraph.AppendText(Environment.NewLine); paragraph.AppendText(" > " + node.Name + " " + val + " / 5"); paragraph.ApplyStyle("Node"); paragraph.AppendText(Environment.NewLine); foreach (var question in questions.Where(q => q.IdNode == node.IdNode)) { var answer = dba.Answers.FirstOrDefault(a => a.IdQuestion == question.IdQuestion && a.IdInterview == id); paragraph = section.AddParagraph(); paragraph.AppendText(question.Description); paragraph.ApplyStyle("Question"); paragraph.AppendText(Environment.NewLine); if (answer != null && answer.IntervieweeAnswer != null) { paragraph = section.AddParagraph(); paragraph.AppendText("Answer:"); paragraph.ApplyStyle("Answer"); paragraph = section.AddParagraph(); if (question.AnswerType == AnswerType.Integer) { paragraph.AppendText(answer.IntervieweeAnswer + " / 5"); } else { paragraph.AppendText(answer.IntervieweeAnswer); } textRange.CharacterFormat.FontName = font; textRange.CharacterFormat.Bold = true; paragraph.AppendText(Environment.NewLine); if (type == 4 && !string.IsNullOrEmpty(answer.ConsultantComment)) { if (answer.Comment != null) { paragraph = section.AddParagraph(); paragraph.AppendText("Comment: " + answer.Comment); paragraph.ApplyStyle("Comment"); paragraph.AppendText(Environment.NewLine); } paragraph = section.AddParagraph(); paragraph.AppendText("Consultant's comment: " + answer.ConsultantComment); paragraph.ApplyStyle("Comment"); paragraph.AppendText(Environment.NewLine); } } else { paragraph = section.AddParagraph(); textRange = paragraph.AppendText("No answer yet"); textRange.CharacterFormat.FontName = font; textRange.CharacterFormat.TextColor = Color.DarkGray; paragraph.AppendText(Environment.NewLine); } } } } } } } } switch (type) { case 1: if (!pdf) { return(document.ExportAsActionResult(DateTime.Now.ToShortDateString() + "_" + campaign.Name + "_Customer.docx", FormatType.Word2013, HttpContext.ApplicationInstance.Response, HttpContentDisposition.Attachment)); } else { var converted = ConvertToPDF(document); return(converted.ExportAsActionResult(DateTime.Now.ToShortDateString() + "_" + campaign.Name + "_Customer.pdf", HttpContext.ApplicationInstance.Response, HttpReadType.Save)); } case 2: if (!pdf) { return(document.ExportAsActionResult(DateTime.Now.ToShortDateString() + "_" + campaign.Name + "_Firm.docx", FormatType.Word2013, HttpContext.ApplicationInstance.Response, HttpContentDisposition.Attachment)); } else { var converted = ConvertToPDF(document); return(converted.ExportAsActionResult(DateTime.Now.ToShortDateString() + "_" + campaign.Name + "_Firm.pdf", HttpContext.ApplicationInstance.Response, HttpReadType.Save)); } case 3: if (!pdf) { return(document.ExportAsActionResult(DateTime.Now.ToShortDateString() + "_" + interview.Name + "_Customer.docx", FormatType.Word2013, HttpContext.ApplicationInstance.Response, HttpContentDisposition.Attachment)); } else { var converted = ConvertToPDF(document); return(converted.ExportAsActionResult(DateTime.Now.ToShortDateString() + "_" + interview.Name + "_Customer.pdf", HttpContext.ApplicationInstance.Response, HttpReadType.Save)); } case 4: if (!pdf) { return(document.ExportAsActionResult(DateTime.Now.ToShortDateString() + "_" + interview.Name + "_Firm.docx", FormatType.Word2013, HttpContext.ApplicationInstance.Response, HttpContentDisposition.Attachment)); } else { var converted = ConvertToPDF(document); return(converted.ExportAsActionResult(DateTime.Now.ToShortDateString() + "_" + interview.Name + "_Firm.pdf", HttpContext.ApplicationInstance.Response, HttpReadType.Save)); } } return(document.ExportAsActionResult("Report.docx", FormatType.Word2013, HttpContext.ApplicationInstance.Response, HttpContentDisposition.Attachment)); }
private async void btnGuardar_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e) { try { if (document != null) { document.Close(); document = null; } if (document == null) { document = new WordDocument(); docStream = File.OpenRead(Path.GetFullPath(sFilePathWord)); await document.OpenAsync(docStream, FormatType.Docx); docStream.Dispose(); } foreach (var x in textBoxes) { replace(x.Name, x.Text, sFilePathWord); } foreach (var z in richEditBoxes) { string valor; z.TextDocument.GetText(Windows.UI.Text.TextGetOptions.None, out valor); replace(z.Name, valor, sFilePathWord); } foreach (var x in comboBoxes) { if (x.SelectedItem == null) { replace(x.Name, "", sFilePathWord); } else if (x.Name.ToLower().Contains("nombre_tutor")) { replace("Grupo", (x.SelectedItem as TutoresProfesores).grupo + " de " + (x.SelectedItem as TutoresProfesores).semestre + " semestre", sFilePathWord); replace("Correo", (x.SelectedItem as TutoresProfesores).correo, sFilePathWord); if ((x.SelectedItem as TutoresProfesores).imagen != null) { //TextSelection textSelections = document.Find(new Regex("^<[Imagen]>")); Stream imageStream = (x.SelectedItem as TutoresProfesores).imagen; WParagraph paragraph = new WParagraph(document); WPicture picture = paragraph.AppendPicture(imageStream) as WPicture; picture.Width = 60; picture.Height = 60; TextSelection newSelection = new TextSelection(paragraph, 0, 1); TextBodyPart bodyPart = new TextBodyPart(document); bodyPart.BodyItems.Add(paragraph); document.Replace("<[Imagen]>", bodyPart, true, true); } replace(x.Name, x.SelectedItem.ToString(), sFilePathWord); } replace(x.Name, x.SelectedItem.ToString(), sFilePathWord); } foreach (var fecha in datePickers) { if (fecha.SelectedDate == null) { fecha.SelectedDate = DateTime.UtcNow; } if (fecha.Name.ToLower().Contains("año")) { replace(fecha.Name, fecha.Date.DateTime.ToString("yyyy"), sFilePathWord); } else { replace(fecha.Name, fecha.Date.DateTime.ToString("MMMM"), sFilePathWord); } } foreach (var dp in calendarDatePickers) { if (dp.Date.Value.DateTime == null) { dp.Date = DateTime.UtcNow; } replace(dp.Name, dp.Date.Value.DateTime.ToString("dd/MMMM/yyyy"), sFilePathWord); } if (checkBoxes != null) { foreach (var cb in checkBoxes) { if (cb.IsChecked == true) { replace(cb.Name, "x", sFilePathWord); } else { replace(cb.Name, "", sFilePathWord); } } } replace("Jefe_Tutorias", await DBAssets.getStringAsync((App.Current as App).ConnectionString, "SELECT nombre FROM CoordinadoresTutorias;"), sFilePathWord); replace("Jefe_Departamento", await DBAssets.getStringAsync((App.Current as App).ConnectionString, "SELECT nombre FROM JefesDepartamentos WHERE id_jefe = 1;"), sFilePathWord); replace("Jefe_Tutorias_Institucional", await DBAssets.getStringAsync((App.Current as App).ConnectionString, "SELECT nombre FROM CoordinadoresTutoriasInstitucionales;"), sFilePathWord); replace("Jefe_Desarrollo_Académico", await DBAssets.getStringAsync((App.Current as App).ConnectionString, "SELECT nombre FROM JefesDepartamentos WHERE id_jefe = 2;"), sFilePathWord); FileSavePicker savePicker = new FileSavePicker(); savePicker.SuggestedStartLocation = PickerLocationId.Desktop; savePicker.SuggestedFileName = "Resultado"; savePicker.FileTypeChoices.Add("Word Documents", new List <string>() { ".docx" }); StorageFile outputStorageFile = await savePicker.PickSaveFileAsync(); await document.SaveAsync(outputStorageFile, FormatType.Docx); } catch (Exception ex) { var err = new MessageDialog("Unable to open File!" + ex.Message); await err.ShowAsync(); } }