diff --git a/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML.sln b/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML.sln new file mode 100644 index 000000000..62a768524 --- /dev/null +++ b/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Replace-text-in-list-paragraph-with-HTML", "Replace-text-in-list-paragraph-with-HTML/Replace-text-in-list-paragraph-with-HTML.csproj", "{DDC158F3-4052-48B7-AF5F-4AB3D6CD4B22}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DDC158F3-4052-48B7-AF5F-4AB3D6CD4B22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDC158F3-4052-48B7-AF5F-4AB3D6CD4B22}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDC158F3-4052-48B7-AF5F-4AB3D6CD4B22}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDC158F3-4052-48B7-AF5F-4AB3D6CD4B22}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2F907F5C-D20B-4C16-8863-3281F8B7A58B} + EndGlobalSection +EndGlobal diff --git a/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML/Data/File.html b/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML/Data/File.html new file mode 100644 index 000000000..4cbe593ae --- /dev/null +++ b/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML/Data/File.html @@ -0,0 +1,9 @@ + + +
+

Cycling Helmet

+

Enhance durability and performance in rough terrain

+

Beefier look with thicker tires

+
+ + \ No newline at end of file diff --git a/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML/Data/Template.docx b/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML/Data/Template.docx new file mode 100644 index 000000000..c0719baa5 Binary files /dev/null and b/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML/Data/Template.docx differ diff --git a/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML/Program.cs b/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML/Program.cs new file mode 100644 index 000000000..fae3b22c8 --- /dev/null +++ b/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML/Program.cs @@ -0,0 +1,72 @@ +using Syncfusion.DocIO; +using Syncfusion.DocIO.DLS; +using System.IO; + +namespace Replace_text_in_list_paragraph_with_HTML +{ + class Program + { + static void Main(string[] args) + { + using (FileStream inputFileStream = new FileStream(Path.GetFullPath(@"Data/Template.docx"), FileMode.Open, FileAccess.ReadWrite)) + { + //Open the template Word document. + using (WordDocument document = new WordDocument(inputFileStream, FormatType.Automatic)) + { + string htmlFilePath = @"Data/File.html"; + //Check if the HTML content is valid. + if (document.LastSection.Body.IsValidXHTML(htmlFilePath, XHTMLValidationType.None)) + { + //Define the variable containing the text to search within the paragraph. + string variable = "Youth mountain bike"; + //Find the first occurrence of a particular text in the document + TextSelection textSelection = document.Find(variable, true, true); + //Get the found text as single text range + WTextRange textRange = textSelection.GetAsOneRange(); + // Get the paragraph containing the found text range + WParagraph paragraph = textRange.OwnerParagraph; + //Get the next sibling element of the current paragraph. + TextBodyItem nextSibling = paragraph.NextSibling as TextBodyItem; + //Get the index of the current paragraph within its parent text body. + int sourceIndex = paragraph.OwnerTextBody.ChildEntities.IndexOf(paragraph); + //Clear all child entities within the paragraph. + paragraph.ChildEntities.Clear(); + //Get the list style name from the paragraph. + string listStyleName = paragraph.ListFormat.CurrentListStyle.Name; + //Get the current list level number. + int listLevelNum = paragraph.ListFormat.ListLevelNumber; + //Append HTML content from the specified file to the paragraph. + paragraph.AppendHTML(File.ReadAllText(Path.GetFullPath(htmlFilePath))); + //Determine the index of the next sibling if it exists. + int nextSiblingIndex = nextSibling != null ? nextSibling.OwnerTextBody.ChildEntities.IndexOf(nextSibling) : -1; + //Apply the same list style to newly added paragraphs from the HTML content. + for (int k = sourceIndex; k < paragraph.OwnerTextBody.Count; k++) + { + //Stop applying the style if the next sibling is reached. + if (nextSiblingIndex != -1 && k == nextSiblingIndex) + { + break; + } + Entity entity = paragraph.OwnerTextBody.ChildEntities[k]; + //Apply the list style only if the entity is a paragraph. + if (entity is WParagraph) + { + (entity as WParagraph).ListFormat.ApplyStyle(listStyleName); + (entity as WParagraph).ListFormat.ListLevelNumber = listLevelNum; + } + else + { + break; + } + } + } + using (FileStream outputFileStream = new FileStream(Path.GetFullPath(@"../../../Result.docx"), FileMode.Create, FileAccess.ReadWrite)) + { + //Save the modified Word document to the output file stream. + document.Save(outputFileStream, FormatType.Docx); + } + } + } + } + } +} diff --git a/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML/Replace-text-in-list-paragraph-with-HTML.csproj b/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML/Replace-text-in-list-paragraph-with-HTML.csproj new file mode 100644 index 000000000..0ef99a312 --- /dev/null +++ b/HTML-conversions/Replace-text-in-list-paragraph-with-HTML/.NET/Replace-text-in-list-paragraph-with-HTML/Replace-text-in-list-paragraph-with-HTML.csproj @@ -0,0 +1,22 @@ + + + + Exe + net8.0 + Replace_text_in_list_paragraph_with_HTML + + + + + + + + + Always + + + Always + + + +