diff --git a/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows.sln b/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows.sln new file mode 100644 index 00000000..dd14186b --- /dev/null +++ b/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.37216.2 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Set_Font_Size_for_Text_Highlighted_Rows", "Set_Font_Size_for_Text_Highlighted_Rows\Set_Font_Size_for_Text_Highlighted_Rows.csproj", "{6F4AB1AA-313D-E96E-2EC2-40D7FC31DEE8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6F4AB1AA-313D-E96E-2EC2-40D7FC31DEE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F4AB1AA-313D-E96E-2EC2-40D7FC31DEE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F4AB1AA-313D-E96E-2EC2-40D7FC31DEE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F4AB1AA-313D-E96E-2EC2-40D7FC31DEE8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {6B9A86AF-F86F-4630-A665-FA532BBAB2A9} + EndGlobalSection +EndGlobal diff --git a/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Data/Template.docx b/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Data/Template.docx new file mode 100644 index 00000000..20286e7b Binary files /dev/null and b/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Data/Template.docx differ diff --git a/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Output/Result.docx b/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Output/Result.docx new file mode 100644 index 00000000..4cee1d3a Binary files /dev/null and b/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Output/Result.docx differ diff --git a/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Output/gitkeep.txt b/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Output/gitkeep.txt new file mode 100644 index 00000000..5f282702 --- /dev/null +++ b/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Output/gitkeep.txt @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Program.cs b/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Program.cs new file mode 100644 index 00000000..83edf751 --- /dev/null +++ b/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Program.cs @@ -0,0 +1,125 @@ +using Syncfusion.DocIO; +using Syncfusion.DocIO.DLS; + +namespace Set_Font_Size_for_Text_Highlighted_Rows +{ + class Program + { + static void Main(string[] args) + { + using (FileStream fileStreamPath = new FileStream(Path.GetFullPath(@"Data/Template.docx"), FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) + { + //Opens an existing document. + using (WordDocument document = new WordDocument(fileStreamPath, FormatType.Docx)) + { + foreach (WSection section in document.Sections) + { + //Accesses the Body of section where all the contents in document are apart. + IterateTextBody(section.Body); + } + //Creates file stream. + using (FileStream outputFileStream = new FileStream(Path.GetFullPath(@"Output/Result.docx"), FileMode.Create, FileAccess.ReadWrite)) + { + //Saves the Word document to file stream. + document.Save(outputFileStream, FormatType.Docx); + } + } + } + } + /// + /// Iterates textbody child elements. + /// + private static void IterateTextBody(WTextBody textBody) + { + //Iterates through each of the child items of WTextBody. + for (int i = 0; i < textBody.ChildEntities.Count; i++) + { + //IEntity is the basic unit in DocIO DOM. + //Accesses the body items (should be either paragraph, table or block content control) as IEntity. + IEntity bodyItemEntity = textBody.ChildEntities[i]; + //A Text body has 3 types of elements - Paragraph, Table and Block Content Control + //Decides the element type by using EntityType. + switch (bodyItemEntity.EntityType) + { + case EntityType.Paragraph: + WParagraph paragraph = bodyItemEntity as WParagraph; + //Processes the paragraph contents. + //Iterates through the paragraph's DOM. + IterateParagraph(paragraph.Items); + break; + case EntityType.Table: + //Table is a collection of rows and cells. + //Iterates through table's DOM. + IterateTable(bodyItemEntity as WTable); + break; + case EntityType.BlockContentControl: + BlockContentControl blockContentControl = bodyItemEntity as BlockContentControl; + //Iterates to the body items of Block Content Control. + IterateTextBody(blockContentControl.TextBody); + break; + } + } + } + + /// + /// Iterates table child elements. + /// + private static void IterateTable(WTable table) + { + //Iterates the row collection in a table. + foreach (WTableRow row in table.Rows) + { + //Iterates the cell collection in a table row. + foreach (WTableCell cell in row.Cells) + { + //Table cell is derived from (also a) TextBody. + //Reusing the code meant for iterating TextBody. + IterateTextBody(cell); + } + } + } + + /// + /// Iterates paragraph child elements. + /// + private static void IterateParagraph(ParagraphItemCollection paraItems) + { + for (int i = 0; i < paraItems.Count; i++) + { + Entity entity = paraItems[i]; + //A paragraph can have child elements such as text, image, hyperlink, symbols, etc., + //Decides the element type by using EntityType. + switch (entity.EntityType) + { + case EntityType.TextRange: + //Replaces the text with another. + WTextRange textRange = entity as WTextRange; + // Get character format of the text + WCharacterFormat charFormat = textRange.CharacterFormat; + //Checks whether text has highlightcolor + if (!charFormat.HighlightColor.IsEmpty) + { + //If text has highlight color, set text's font size larger + charFormat.FontSize = 14; + } + break; + case EntityType.TextBox: + //Iterates to the body items of textbox. + WTextBox textBox = entity as WTextBox; + IterateTextBody(textBox.TextBoxBody); + break; + case EntityType.Shape: + //Iterates to the body items of shape. + Shape shape = entity as Shape; + IterateTextBody(shape.TextBody); + break; + case EntityType.InlineContentControl: + //Iterates to the paragraph items of inline content control. + InlineContentControl inlineContentControl = entity as InlineContentControl; + IterateParagraph(inlineContentControl.ParagraphItems); + break; + } + } + } + } +} diff --git a/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Set_Font_Size_for_Text_Highlighted_Rows.csproj b/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Set_Font_Size_for_Text_Highlighted_Rows.csproj new file mode 100644 index 00000000..8d46b05c --- /dev/null +++ b/Tables/Set_Font_Size_for_Text_Highlighted_Rows/.NET/Set_Font_Size_for_Text_Highlighted_Rows/Set_Font_Size_for_Text_Highlighted_Rows.csproj @@ -0,0 +1,23 @@ + + + + Exe + net8.0 + enable + enable + + + + + + + + + Always + + + Always + + + +