diff --git a/ej2-angular-toc.html b/ej2-angular-toc.html
index 544378315f..49e76cb8a1 100644
--- a/ej2-angular-toc.html
+++ b/ej2-angular-toc.html
@@ -3215,7 +3215,7 @@
Release Notes
- - 2025 Volume 1 - 29.*
- 2024 Volume 4 - 28.*
- 2024 Volume 3 - 27.*
- 2024 Volume 2 - 26.*
- 2024 Volume 1 - 25.*
+ - 2025 Volume 1 - 29.*
- 2024 Volume 4 - 28.*
- 2024 Volume 3 - 27.*
- 2024 Volume 2 - 26.*
- 2024 Volume 1 - 25.*
- 2023 Volume 4 - 24.*
- 2023 Volume 3 - 23.*
- Weekly Release
diff --git a/ej2-angular/Release-notes/29.1.41.md b/ej2-angular/Release-notes/29.1.41.md
new file mode 100644
index 0000000000..0ff147550f
--- /dev/null
+++ b/ej2-angular/Release-notes/29.1.41.md
@@ -0,0 +1,99 @@
+---
+title: Essential Studio for Angular Weekly Nuget Release Release Notes
+description: Essential Studio for Angular Weekly Nuget Release Release Notes
+platform: ej2-angular
+documentation: ug
+---
+
+# Essential Studio for Angular Release Notes
+
+{% include release-info.html date="May 06, 2025" version="v29.1.41" passed="89421" failed="0" %}
+
+{% directory path: _includes/release-notes/v29.1.41 %}
+
+{% include {{file.url}} %}
+
+{% enddirectory %}
+
+## Test Results
+
+| Component Name | Test Cases | Passed | Failed | Remarks |
+|---------------|------------|--------|--------|---------|
+| 3D Chart | 232 | 232 | 0 | All Passed |
+| 3D Circular Chart | 374 | 374 | 0 | All Passed |
+| Accordion | 106 | 106 | 0 | All Passed |
+| AI Assist View | 430 | 430 | 0 | All Passed |
+| App Bar | 50 | 50 | 0 | All Passed |
+| AutoComplete | 200 | 200 | 0 | All Passed |
+| Breadcrumb | 90 | 90 | 0 | All Passed |
+| Bullet Chart | 164 | 164 | 0 | All Passed |
+| Button | 145 | 145 | 0 | All Passed |
+| ButtonGroup | 84 | 84 | 0 | All Passed |
+| calendar | 177 | 177 | 0 | All Passed |
+| Carousel | 61 | 61 | 0 | All Passed |
+| Chart | 3884 | 3884 | 0 | All Passed |
+| Chat UI | 46 | 46 | 0 | All Passed |
+| CircularGauge | 283 | 283 | 0 | All Passed |
+| ColorPicker | 45 | 45 | 0 | All Passed |
+| Combo Box | 136 | 136 | 0 | All Passed |
+| Common | 616 | 616 | 0 | All Passed |
+| Context Menu | 65 | 65 | 0 | All Passed |
+| Dashboard layout | 31 | 31 | 0 | All Passed |
+| Data Grid | 2521 | 2521 | 0 | All Passed |
+| Date Picker | 381 | 381 | 0 | All Passed |
+| Date Range Picker | 418 | 418 | 0 | All Passed |
+| Date Time Picker | 306 | 306 | 0 | All Passed |
+| Diagram | 18521 | 18521 | 0 | All Passed |
+| Document Editor | 3311 | 3311 | 0 | All Passed |
+| DropDown Button | 48 | 48 | 0 | All Passed |
+| Dropdown List | 188 | 188 | 0 | All Passed |
+| Dropdown Tree | 104 | 104 | 0 | All Passed |
+| File Manager | 2187 | 2187 | 0 | All Passed |
+| Floating Action Button | 64 | 64 | 0 | All Passed |
+| Gantt | 2461 | 2461 | 0 | All Passed |
+| HeatMap Chart | 478 | 478 | 0 | All Passed |
+| Image Editor | 1653 | 1653 | 0 | All Passed |
+| In-place Editor | 613 | 613 | 0 | All Passed |
+| Kanban | 65 | 65 | 0 | All Passed |
+| LinearGauge | 309 | 309 | 0 | All Passed |
+| Listbox | 70 | 70 | 0 | All Passed |
+| ListView | 83 | 83 | 0 | All Passed |
+| Maps | 1126 | 1126 | 0 | All Passed |
+| Mention | 35 | 35 | 0 | All Passed |
+| Menu | 67 | 67 | 0 | All Passed |
+| Multicolumn Combo Box | 254 | 254 | 0 | All Passed |
+| Multiselect Dropdown | 345 | 345 | 0 | All Passed |
+| OTP Input | 240 | 240 | 0 | All Passed |
+| PDF Viewer | 19501 | 19501 | 0 | All Passed |
+| Pivot Table | 2010 | 2010 | 0 | All Passed |
+| Progress Bar | 78 | 78 | 0 | All Passed |
+| Progress Button | 132 | 132 | 0 | All Passed |
+| Query Builder | 480 | 480 | 0 | All Passed |
+| RadioButton | 37 | 37 | 0 | All Passed |
+| RangeNavigator | 138 | 138 | 0 | All Passed |
+| Rating | 201 | 201 | 0 | All Passed |
+| Ribbon | 486 | 486 | 0 | All Passed |
+| Rich Text Editor | 3901 | 3901 | 0 | All Passed |
+| schedule | 4576 | 4576 | 0 | All Passed |
+| sidebar | 88 | 88 | 0 | All Passed |
+| Signature | 40 | 40 | 0 | All Passed |
+| Skeleton | 144 | 144 | 0 | All Passed |
+| Slider | 147 | 147 | 0 | All Passed |
+| SmithChart | 49 | 49 | 0 | All Passed |
+| Sparkline | 57 | 57 | 0 | All Passed |
+| Speed Dial | 366 | 366 | 0 | All Passed |
+| Split Button | 48 | 48 | 0 | All Passed |
+| Spreadsheet | 9060 | 9060 | 0 | All Passed |
+| Stepper | 138 | 138 | 0 | All Passed |
+| Stock Chart | 379 | 379 | 0 | All Passed |
+| Tab | 82 | 82 | 0 | All Passed |
+| Text Area | 107 | 107 | 0 | All Passed |
+| TextBox | 33 | 33 | 0 | All Passed |
+| Time Picker | 177 | 177 | 0 | All Passed |
+| Timeline | 213 | 213 | 0 | All Passed |
+| Toast | 139 | 139 | 0 | All Passed |
+| Toolbar | 130 | 130 | 0 | All Passed |
+| ToolTip | 135 | 135 | 0 | All Passed |
+| TreeGrid | 2703 | 2703 | 0 | All Passed |
+| Treemap | 209 | 209 | 0 | All Passed |
+| Treeview | 370 | 370 | 0 | All Passed |
\ No newline at end of file
diff --git a/ej2-angular/rich-text-editor/import-and-export.md b/ej2-angular/rich-text-editor/import-and-export.md
index c6829c238f..02694c2f5e 100644
--- a/ej2-angular/rich-text-editor/import-and-export.md
+++ b/ej2-angular/rich-text-editor/import-and-export.md
@@ -30,6 +30,72 @@ The following example illustrates how to set up the `ImportWord` in the Rich Tex
{% previewsample "page.domainurl/samples/rich-text-editor/import-cs1" %}
+Here’s how to handle the server-side action for importing content from Word.
+
+```csharp
+
+public class RichTextEditorController : Controller
+
+ {
+ public IWebHostEnvironment _webHostEnvironment;
+
+ [AcceptVerbs("Post")]
+ [EnableCors("AllowAllOrigins")]
+ [Route("ImportFromWord")]
+ public IActionResult ImportFromWord(IList UploadFiles)
+ {
+ string HtmlString = string.Empty;
+ if (UploadFiles != null)
+ {
+ foreach (var file in UploadFiles)
+ {
+ string filename = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
+ filename = _webHostEnvironment.WebRootPath + $@"\{filename}";
+ using (FileStream fs = System.IO.File.Create(filename))
+ {
+ file.CopyTo(fs);
+ fs.Flush();
+ }
+ using (var mStream = new MemoryStream())
+ {
+ WordDocument document = new WordDocument(file.OpenReadStream(), FormatType.Rtf);
+ document.SaveOptions.HTMLExportWithWordCompatibility = false;
+ document.Save(mStream, FormatType.Html);
+ mStream.Position = 0;
+ HtmlString = new StreamReader(mStream).ReadToEnd();
+ };
+ HtmlString = ExtractBodyContent(HtmlString);
+ HtmlString = SanitizeHtml(HtmlString);
+ System.IO.File.Delete(filename);
+ }
+ return Ok(HtmlString);
+ }
+ else
+ {
+ Response.Clear();
+ // Return an appropriate status code or message
+ return BadRequest("No files were uploaded.");
+ }
+ }
+
+ private string ExtractBodyContent(string html)
+ {
+ if (html.Contains("") + 6).Replace("