InlineClone Method |
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 ImportT(T, Boolean) method and then insert the imported element.
See Developer Guide: Merge all paragraphs into a single in an existing PDF document
using System; using System.IO; using System.Linq; using SautinSoft.Document; namespace Example { class Program { static void Main(string[] args) { // Get your free trial key here: // https://sautinsoft.com/start-for-free/ MergeParagraphs(); } /// <summary> /// Merge all paragraphs into a single in an existing PDF document. /// </summary> /// <remarks> /// Details: https://sautinsoft.com/products/document/help/net/developer-guide/merge-paragraphs-in-pdf-document-net-csharp-vb.php /// </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)); } par.Content.Delete(); } dc.Save(outFile); System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(inpFile) { UseShellExecute = true }); System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(outFile) { UseShellExecute = true }); } } }
Imports System Imports System.IO Imports System.Linq Imports SautinSoft.Document Namespace Example Friend Class Program Shared Sub Main(ByVal args() As String) MergeParagraphs() End Sub ''' Get your free trial key here: ''' https://sautinsoft.com/start-for-free/ ''' <summary> ''' Merge all paragraphs into a single in an existing PDF document. ''' </summary> ''' <remarks> ''' Details: https://sautinsoft.com/products/document/help/net/developer-guide/merge-paragraphs-in-pdf-document-net-csharp-vb.php ''' </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 par.Content.Delete() Next par dc.Save(outFile) 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