diff --git a/Bookmarks/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/.NET/Add-bookmarks-to-all-paragraphs-and-retrieve-contents.sln b/Bookmarks/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/.NET/Add-bookmarks-to-all-paragraphs-and-retrieve-contents.sln
new file mode 100644
index 00000000..7c51e18b
--- /dev/null
+++ b/Bookmarks/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/.NET/Add-bookmarks-to-all-paragraphs-and-retrieve-contents.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.14.36518.9 d17.14
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Add-bookmarks-to-all-paragraphs-and-retrieve-contents", "Add-bookmarks-to-all-paragraphs-and-retrieve-contents\Add-bookmarks-to-all-paragraphs-and-retrieve-contents.csproj", "{B2C967AD-01D4-483D-BF02-408BF34FB556}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {B2C967AD-01D4-483D-BF02-408BF34FB556}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B2C967AD-01D4-483D-BF02-408BF34FB556}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B2C967AD-01D4-483D-BF02-408BF34FB556}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B2C967AD-01D4-483D-BF02-408BF34FB556}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {05F71308-F810-4B65-AA90-DE1D11EEF13C}
+ EndGlobalSection
+EndGlobal
diff --git a/Bookmarks/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/.NET/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/Add-bookmarks-to-all-paragraphs-and-retrieve-contents.csproj b/Bookmarks/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/.NET/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/Add-bookmarks-to-all-paragraphs-and-retrieve-contents.csproj
new file mode 100644
index 00000000..c2e6add9
--- /dev/null
+++ b/Bookmarks/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/.NET/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/Add-bookmarks-to-all-paragraphs-and-retrieve-contents.csproj
@@ -0,0 +1,21 @@
+
+
+
+ Exe
+ net8.0
+ Add_bookmarks_to_all_paragraphs_and_retrieve_contents
+ enable
+ enable
+
+
+
+
+
+
+
+
+ Always
+
+
+
+
diff --git a/Bookmarks/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/.NET/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/Data/Input.docx b/Bookmarks/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/.NET/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/Data/Input.docx
new file mode 100644
index 00000000..67d5b1d6
Binary files /dev/null and b/Bookmarks/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/.NET/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/Data/Input.docx differ
diff --git a/Bookmarks/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/.NET/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/Program.cs b/Bookmarks/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/.NET/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/Program.cs
new file mode 100644
index 00000000..8139e963
--- /dev/null
+++ b/Bookmarks/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/.NET/Add-bookmarks-to-all-paragraphs-and-retrieve-contents/Program.cs
@@ -0,0 +1,64 @@
+using Syncfusion.DocIO.DLS;
+
+namespace Add_bookmarks_to_all_paragraphs_and_retrieve_contents
+{
+ class Program
+ {
+ public static void Main(string[] args)
+ {
+ // Load the existing Word document
+ WordDocument document = new WordDocument(Path.GetFullPath("Data/Input.docx"));
+ // Retrieve all paragraph entities in the document
+ List paragraphsToInsertBookmarks = document.FindAllItemsByProperty(EntityType.Paragraph, null, null);
+ foreach (Entity entity in paragraphsToInsertBookmarks)
+ {
+ // Cast the entity to a paragraph
+ WParagraph currentPara = entity as WParagraph;
+ // Skip the paragraph if it is empty
+ if (currentPara.Text != string.Empty)
+ {
+ // Create a unique bookmark name using a GUID
+ string bookmarkName = "Bookmark" + Guid.NewGuid();
+ // Insert a bookmark start at the beginning of the paragraph
+ currentPara.ChildEntities.Insert(0, new BookmarkStart(document, bookmarkName));
+ // Insert a bookmark end at the end of the paragraph
+ currentPara.AppendBookmarkEnd(bookmarkName);
+ }
+ }
+ // Retrieve the contents of all bookmarks in the document
+ Dictionary bookmarkContents = GetBookmarkContents(document);
+ // Print each bookmark name and its corresponding content
+ foreach (string bkmkName in bookmarkContents.Keys)
+ {
+ Console.WriteLine("Corresponding Bookmark : " + bkmkName);
+ Console.WriteLine("Content : " + bookmarkContents[bkmkName]);
+ }
+ Console.ReadLine();
+ }
+ ///
+ /// Retrieves all bookmark contents from the document.
+ ///
+ /// The Word document containing bookmarks.
+ /// A dictionary with bookmark names as keys and their text content as values.
+ private static Dictionary GetBookmarkContents(WordDocument document)
+ {
+ // Create a dictionary to store bookmark names and their contents
+ Dictionary bookmarkContents = new Dictionary();
+ // Iterate through each bookmark
+ foreach (Bookmark currentBookmark in document.Bookmarks)
+ {
+ // Create navigator to move to the current bookmark
+ BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);
+ bookmarkNavigator.MoveToBookmark(currentBookmark.Name);
+ // Extract the content inside the bookmark as a temporary Word document
+ WordDocument tempDoc = bookmarkNavigator.GetContent().GetAsWordDocument();
+ // Get the text content and add it to the dictionary
+ bookmarkContents.Add(currentBookmark.Name, tempDoc.GetText());
+ // Close the temporary document.
+ tempDoc.Close();
+ }
+ // Return the dictionary containing all bookmark contents
+ return bookmarkContents;
+ }
+ }
+}