From f9132247d0fd7c5688ac5652ac9e378ca36bd416 Mon Sep 17 00:00:00 2001 From: DharanyaSakthivel-SF4210 Date: Wed, 14 May 2025 07:29:07 +0530 Subject: [PATCH] ES-944860-Generate-color-coded-invoices --- .../.NET/Generate-color-coded-invoices.sln | 22 +++++++ .../Data/Template.docx | Bin 0 -> 14275 bytes .../Generate-color-coded-invoices.csproj | 24 +++++++ .../Output/.gitkeep | 1 + .../Generate-color-coded-invoices/Program.cs | 61 ++++++++++++++++++ 5 files changed, 108 insertions(+) create mode 100644 Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices.sln create mode 100644 Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Data/Template.docx create mode 100644 Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Generate-color-coded-invoices.csproj create mode 100644 Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Output/.gitkeep create mode 100644 Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Program.cs diff --git a/Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices.sln b/Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices.sln new file mode 100644 index 000000000..642b7dec8 --- /dev/null +++ b/Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35527.113 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Generate-color-coded-invoices", "Generate-color-coded-invoices\Generate-color-coded-invoices.csproj", "{5B0540C8-1A4D-4BB4-A0B9-10028D140E00}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5B0540C8-1A4D-4BB4-A0B9-10028D140E00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B0540C8-1A4D-4BB4-A0B9-10028D140E00}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B0540C8-1A4D-4BB4-A0B9-10028D140E00}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B0540C8-1A4D-4BB4-A0B9-10028D140E00}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Data/Template.docx b/Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Data/Template.docx new file mode 100644 index 0000000000000000000000000000000000000000..b694bb7292f19ef1eeb1e2ac0a3094f7975fcf6f GIT binary patch literal 14275 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 AssI20 literal 0 HcmV?d00001 diff --git a/Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Generate-color-coded-invoices.csproj b/Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Generate-color-coded-invoices.csproj new file mode 100644 index 000000000..a79a6c2a7 --- /dev/null +++ b/Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Generate-color-coded-invoices.csproj @@ -0,0 +1,24 @@ + + + + Exe + net8.0 + Generate_color_coded_invoices + enable + enable + + + + + + + + + Always + + + Always + + + + diff --git a/Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Output/.gitkeep b/Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Output/.gitkeep new file mode 100644 index 000000000..5f282702b --- /dev/null +++ b/Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Output/.gitkeep @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Program.cs b/Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Program.cs new file mode 100644 index 000000000..9f1d7386d --- /dev/null +++ b/Mail-Merge/Generate-color-coded-invoices/.NET/Generate-color-coded-invoices/Program.cs @@ -0,0 +1,61 @@ +using Syncfusion.DocIO; +using Syncfusion.DocIO.DLS; +using System.Data; +using Syncfusion.Drawing; + + +// Holds row index to color mapping +Dictionary TextColors = new Dictionary(); +// Load the Word document +using (WordDocument document = new WordDocument(Path.GetFullPath(@"Data/Template.docx"))) +{ + + // Get invoice data + DataTable invoiceTable = GetInvoiceData(); + + // Store color info by row index + for (int i = 0; i < invoiceTable.Rows.Count; i++) + TextColors.Add(i, invoiceTable.Rows[i]["FontColor"]); + + // Hook merge event to apply font color + document.MailMerge.MergeField += ApplyColorToFields; + + // Enable separate page for each invoice + document.MailMerge.StartAtNewPage = true; + + // Perform mail merge + document.MailMerge.ExecuteGroup(invoiceTable); + + // Save the modified document + document.Save(Path.GetFullPath(@"Output/Result.docx"), FormatType.Docx); +} + +// Event handler to apply text color based on row +void ApplyColorToFields(object sender, MergeFieldEventArgs args) +{ + if (TextColors.TryGetValue(args.RowIndex, out object color)) + args.TextRange.CharacterFormat.TextColor = (Color)color; +} + +// Generates sample invoice data +DataTable GetInvoiceData() +{ + DataTable table = new DataTable("Invoice"); + + table.Columns.Add("InvoiceNumber"); + table.Columns.Add("InvoiceDate"); + table.Columns.Add("CustomerName"); + table.Columns.Add("ItemDescription"); + table.Columns.Add("Amount"); + table.Columns.Add("FontColor", typeof(Color)); + + // First Invoice + table.Rows.Add("INV001", "2024-05-01", "Andy Bernard", "Consulting Services", "$3000.00", Color.Teal); + // Second Invoice + table.Rows.Add("INV002", "2024-05-05", "Stanley Hudson", "Software Development", "$4500.00", Color.DarkOrange); + // Third Invoice + table.Rows.Add("INV003", "2024-05-10", "Margaret Peacock", "UI Design Services", "$2000.00", Color.Indigo); + + return table; +} +