Click or drag to resize

InlineClone Method

Clones this element instance.

Namespace:  SautinSoft.Document
Assembly:  SautinSoft.Document (in SautinSoft.Document.dll) Version: (
public Inline Clone(
	bool cloneDescendants


Type: SystemBoolean
to clone all descendants.

Return Value

Type: Inline
The cloned element.

This method serves as a copy constructor for elements. The cloned element has no parent, but belongs to the same document as the original element.

If you want to insert this element into another document, then you should first import it into another document with Import<T>(T,System.Boolean,System.Boolean) method and then insert the imported element.

Merge all paragraphs into a single in an existing PDF document in C#
using System;
using System.IO;
using System.Linq;
using SautinSoft.Document;

namespace Example
    class Program
        static void Main(string[] args)
        /// <summary>
        /// Merge all paragraphs into a single in an existing PDF document.
        /// </summary>
        /// <remarks>
        /// Details:
        /// </remarks>
        static void MergeParagraphs()
            string inpFile = @"..\..\example.pdf";
            string outFile = @"Result.pdf";
            DocumentCore dc = DocumentCore.Load(inpFile);

            Paragraph firstPar = dc.GetChildElements(true, ElementType.Paragraph).First() as Paragraph;

            int lastIndex = firstPar.Inlines.Count;

            foreach (Paragraph par in dc.GetChildElements(true, ElementType.Paragraph).Reverse().Where(p => p != firstPar))
                int last = lastIndex;
                foreach(Inline inline in par.Inlines)
                    firstPar.Inlines.Insert(last++, inline.Clone(true));

            System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(inpFile) { UseShellExecute = true });
            System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(outFile) { UseShellExecute = true });
Merge all paragraphs into a single in an existing PDF document in VB.Net
Imports System
Imports System.IO
Imports System.Linq
Imports SautinSoft.Document

Namespace Example
    Friend Class Program
        Shared Sub Main(ByVal args() As String)
        End Sub
        ''' <summary>
        ''' Merge all paragraphs into a single in an existing PDF document.
        ''' </summary>
        ''' <remarks>
        ''' Details:
        ''' </remarks>
        Private Shared Sub MergeParagraphs()
            Dim inpFile As String = "..\example.pdf"
            Dim outFile As String = "Result.pdf"
            Dim dc As DocumentCore = DocumentCore.Load(inpFile)

            Dim firstPar As Paragraph = TryCast(dc.GetChildElements(True, ElementType.Paragraph).First(), Paragraph)

            Dim lastIndex As Integer = firstPar.Inlines.Count

            For Each par As Paragraph In dc.GetChildElements(True, ElementType.Paragraph).Reverse().Where(Function(p) p IsNot firstPar)
                Dim last As Integer = lastIndex
                For Each inline As Inline In par.Inlines
                    firstPar.Inlines.Insert(last, inline.Clone(True))
                    last += 1
                Next inline
            Next par

            System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(inpFile) With {.UseShellExecute = True})
            System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(outFile) With {.UseShellExecute = True})
        End Sub
    End Class
End Namespace
See Also