Any Element instance can be inserted in DocumentCore only one time. To insert an Element into some other part of the same document, it must be cloned and the clone should be inserted.
Complete code
using System;
using SautinSoft.Document;
using System.IO;
using System.Linq;
using System.Text;
namespace Sample
{
class Sample
{
static void Main(string[] args)
{
CloningElement();
}
/// <summary>
/// How to clone an element in DOCX document.
/// </summary>
/// <remarks>
/// Details: https://sautinsoft.com/products/document/help/net/developer-guide/cloning-element-net-csharp-vb.php
/// </remarks>
static void CloningElement()
{
string filePath = @"..\..\..\Parsing.docx";
string cloningFile = "Cloning.docx";
DocumentCore dc = DocumentCore.Load(filePath);
// Clone section.
dc.Sections.Add(dc.Sections[0].Clone(true));
// Clone paragraphs.
foreach (Block item in dc.Sections[0].Blocks)
dc.Sections.Last().Blocks.Add(item.Clone(true));
// Save the result.
dc.Save(cloningFile);
// Show the result.
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(filePath) { UseShellExecute = true });
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(cloningFile) { UseShellExecute = true });
}
}
}
Imports System
Imports SautinSoft.Document
Imports System.IO
Imports System.Linq
Imports System.Text
Module Sample
Sub Main()
CloningElement()
End Sub
''' <summary>
''' How to clone an element in DOCX document.
''' </summary>
''' <remarks>
''' Details: https://sautinsoft.com/products/document/help/net/developer-guide/cloning-element-net-csharp-vb.php
''' </remarks>
Sub CloningElement()
Dim filePath As String = "..\..\..\Parsing.docx"
Dim cloningFile As String = "Cloning.docx"
Dim dc As DocumentCore = DocumentCore.Load(filePath)
' Clone section.
dc.Sections.Add(dc.Sections(0).Clone(True))
' Clone paragraphs.
For Each item As Block In dc.Sections(0).Blocks
dc.Sections.Last().Blocks.Add(item.Clone(True))
Next item
' Save the result.
dc.Save(cloningFile)
' Show the results.
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(filePath) With {.UseShellExecute = True})
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(cloningFile) With {.UseShellExecute = True})
End Sub
End Module
If you need a new code example or have a question: email us at support@sautinsoft.com or ask at Online Chat (right-bottom corner of this page) or use the Form below: