Skip to content

Commit b778a69

Browse files
committed
Added changes
1 parent 9f75e75 commit b778a69

7 files changed

Lines changed: 185 additions & 0 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 15
4+
VisualStudioVersion = 15.0.28307.136
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Copy-document-property", "Copy-document-property\Copy-document-property.csproj", "{DB7EB08A-7BE8-46B4-9F2E-883902C8E157}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{DB7EB08A-7BE8-46B4-9F2E-883902C8E157}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{DB7EB08A-7BE8-46B4-9F2E-883902C8E157}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{DB7EB08A-7BE8-46B4-9F2E-883902C8E157}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+
{DB7EB08A-7BE8-46B4-9F2E-883902C8E157}.Release|Any CPU.Build.0 = Release|Any CPU
18+
EndGlobalSection
19+
GlobalSection(SolutionProperties) = preSolution
20+
HideSolutionNode = FALSE
21+
EndGlobalSection
22+
GlobalSection(ExtensibilityGlobals) = postSolution
23+
SolutionGuid = {7B24782A-F2D6-4C1A-ACF6-46D747189EE8}
24+
EndGlobalSection
25+
EndGlobal
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net8.0</TargetFramework>
6+
<RootNamespace>Copy_document_property</RootNamespace>
7+
</PropertyGroup>
8+
9+
<ItemGroup>
10+
<PackageReference Include="Syncfusion.DocIO.Net.Core" Version="*" />
11+
</ItemGroup>
12+
13+
<ItemGroup>
14+
<None Update="Data\SourceDocument.docx">
15+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
16+
</None>
17+
<None Update="Data\TargetDocument.docx">
18+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
19+
</None>
20+
<None Update="Output\.gitkeep">
21+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
22+
</None>
23+
</ItemGroup>
24+
25+
</Project>
Binary file not shown.
Binary file not shown.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
using Syncfusion.DocIO.DLS;
2+
using Syncfusion.DocIO;
3+
4+
//Load an existing main Word document.
5+
using (WordDocument targetDocument = new WordDocument(Path.GetFullPath(@"../../Data/TargetDocument.docx"), FormatType.Docx))
6+
{
7+
//Load an existing template Word document.
8+
using (WordDocument sourceDocument = new WordDocument(Path.GetFullPath(@"../../Data/SourceDocument.docx"), FormatType.Docx))
9+
{
10+
//Move Built-in document properties from one Word document to another Word document.
11+
MoveBuiltinDocumentProperties(sourceDocument, targetDocument);
12+
//Move custom document properties from one Word document to another Word document.
13+
MoveCustomDocumentProperties(sourceDocument, targetDocument);
14+
//Save the Word document.
15+
targetDocument.Save(Path.GetFullPath(@"../../Result.docx"));
16+
}
17+
}
18+
19+
/// <summary>
20+
/// Move Built-in document properties from one Word document to another Word document.
21+
/// </summary>
22+
void MoveBuiltinDocumentProperties(WordDocument sourceDocument, WordDocument targetDocument)
23+
{
24+
if (sourceDocument.BuiltinDocumentProperties.Author != null)
25+
targetDocument.BuiltinDocumentProperties.Author = sourceDocument.BuiltinDocumentProperties.Author;
26+
27+
if (sourceDocument.BuiltinDocumentProperties.Title != null)
28+
targetDocument.BuiltinDocumentProperties.Title = sourceDocument.BuiltinDocumentProperties.Title;
29+
30+
if (sourceDocument.BuiltinDocumentProperties.Subject != null)
31+
targetDocument.BuiltinDocumentProperties.Subject = sourceDocument.BuiltinDocumentProperties.Subject;
32+
33+
if (sourceDocument.BuiltinDocumentProperties.Keywords != null)
34+
targetDocument.BuiltinDocumentProperties.Keywords = sourceDocument.BuiltinDocumentProperties.Keywords;
35+
36+
if (sourceDocument.BuiltinDocumentProperties.Comments != null)
37+
targetDocument.BuiltinDocumentProperties.Comments = sourceDocument.BuiltinDocumentProperties.Comments;
38+
39+
if (sourceDocument.BuiltinDocumentProperties.Template != null)
40+
targetDocument.BuiltinDocumentProperties.Template = sourceDocument.BuiltinDocumentProperties.Template;
41+
42+
if (sourceDocument.BuiltinDocumentProperties.LastAuthor != null)
43+
targetDocument.BuiltinDocumentProperties.LastAuthor = sourceDocument.BuiltinDocumentProperties.LastAuthor;
44+
45+
if (sourceDocument.BuiltinDocumentProperties.Thumbnail != null)
46+
targetDocument.BuiltinDocumentProperties.Thumbnail = sourceDocument.BuiltinDocumentProperties.Thumbnail;
47+
48+
if (sourceDocument.BuiltinDocumentProperties.ApplicationName != null)
49+
targetDocument.BuiltinDocumentProperties.ApplicationName = sourceDocument.BuiltinDocumentProperties.ApplicationName;
50+
51+
if (sourceDocument.BuiltinDocumentProperties.Category != null)
52+
targetDocument.BuiltinDocumentProperties.Category = sourceDocument.BuiltinDocumentProperties.Category;
53+
54+
if (sourceDocument.BuiltinDocumentProperties.Company != null)
55+
targetDocument.BuiltinDocumentProperties.Company = sourceDocument.BuiltinDocumentProperties.Company;
56+
57+
if (sourceDocument.BuiltinDocumentProperties.Manager != null)
58+
targetDocument.BuiltinDocumentProperties.Manager = sourceDocument.BuiltinDocumentProperties.Manager;
59+
60+
if (sourceDocument.BuiltinDocumentProperties.RevisionNumber != null)
61+
targetDocument.BuiltinDocumentProperties.RevisionNumber = sourceDocument.BuiltinDocumentProperties.RevisionNumber;
62+
63+
if (sourceDocument.BuiltinDocumentProperties.CreateDate != null)
64+
targetDocument.BuiltinDocumentProperties.CreateDate = sourceDocument.BuiltinDocumentProperties.CreateDate;
65+
66+
if (sourceDocument.BuiltinDocumentProperties.DocSecurity != -2147483648)
67+
targetDocument.BuiltinDocumentProperties.DocSecurity = sourceDocument.BuiltinDocumentProperties.DocSecurity;
68+
69+
if (sourceDocument.BuiltinDocumentProperties.LastPrinted != null)
70+
targetDocument.BuiltinDocumentProperties.LastPrinted = sourceDocument.BuiltinDocumentProperties.LastPrinted;
71+
72+
if (sourceDocument.BuiltinDocumentProperties.LastSaveDate != null)
73+
targetDocument.BuiltinDocumentProperties.LastSaveDate = sourceDocument.BuiltinDocumentProperties.LastSaveDate;
74+
75+
if (sourceDocument.BuiltinDocumentProperties.TotalEditingTime != null)
76+
targetDocument.BuiltinDocumentProperties.TotalEditingTime = sourceDocument.BuiltinDocumentProperties.TotalEditingTime;
77+
}
78+
79+
/// <summary>
80+
/// Move custom document properties from one Word document to another Word document.
81+
/// </summary>
82+
void MoveCustomDocumentProperties(WordDocument sourceDocument, WordDocument targetDocument)
83+
{
84+
for (int i = 0; i < sourceDocument.CustomDocumentProperties.Count; i++)
85+
{
86+
targetDocument.CustomDocumentProperties.Add(sourceDocument.CustomDocumentProperties[i].Name, sourceDocument.CustomDocumentProperties[i].Value);
87+
}
88+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Split Word document by Section using C#
2+
3+
The [.NET Word Library](https://www.syncfusion.com/document-sdk/net-word-library) (DocIO) enables you to create, read, and edit Word documents programmatically without Microsoft Word or interop dependencies. Using this library, you can **split a Word document by sections** using C#.
4+
5+
## Steps to split Word document by sections programmatically
6+
7+
Step 1: Create a new .NET Core console application project.
8+
9+
Step 2: Install the [Syncfusion.DocIO.Net.Core](https://www.nuget.org/packages/Syncfusion.DocIO.Net.Core) NuGet package as a reference to your project from [NuGet.org](https://www.nuget.org/).
10+
11+
Step 3: Include the following namespaces in the Program.cs file.
12+
13+
```csharp
14+
using Syncfusion.DocIO;
15+
using Syncfusion.DocIO.DLS;
16+
using System.IO;
17+
```
18+
19+
Step 4: Add the following code snippet in Program.cs file to split Word document by sections.
20+
21+
```csharp
22+
using (FileStream inputStream = new FileStream(Path.GetFullPath(@"Data/Template.docx"), FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
23+
{
24+
//Load the template document as stream
25+
using (WordDocument document = new WordDocument(inputStream, FormatType.Docx))
26+
{
27+
//Iterate each section from Word document
28+
for (int i = 0; i < document.Sections.Count; i++)
29+
{
30+
//Create new Word document
31+
using (WordDocument newDocument = new WordDocument())
32+
{
33+
//Add cloned section into new Word document
34+
newDocument.Sections.Add(document.Sections[i].Clone());
35+
//Saves the Word document to MemoryStream
36+
using (FileStream outputStream = new FileStream(Path.GetFullPath(@"Output/Section") + i + ".docx", FileMode.OpenOrCreate, FileAccess.ReadWrite))
37+
{
38+
newDocument.Save(outputStream, FormatType.Docx);
39+
}
40+
}
41+
}
42+
}
43+
}
44+
```
45+
46+
More information about splitting a Word document can be found in this [documentation](https://help.syncfusion.com/document-processing/word/word-library/net/word-document/split-word-documents) section.

0 commit comments

Comments
 (0)