Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

Original file line number Diff line number Diff line change
@@ -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);
}
}
}
}
/// <summary>
/// Iterates textbody child elements.
/// </summary>
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;
}
}
}

/// <summary>
/// Iterates table child elements.
/// </summary>
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);
}
}
}

/// <summary>
/// Iterates paragraph child elements.
/// </summary>
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;
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>


<ItemGroup>
<PackageReference Include="Syncfusion.DocIO.Net.Core" Version="*" />
</ItemGroup>
<ItemGroup>
<None Update="Data\Template.docx">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Output\.gitkeep">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>

</Project>
Loading