Inline |
Although InlineCollection is a strongly typed collection of a Inline derived elements, not all Inline derived elements are supported in every InlineCollection.
For example, Inlines and ResultInlines support all Inline derived elements, and DisplayInlines doesn't support Hyperlink element.
Supported element types can be retrieved through SupportedElementTypes property.
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 100-day 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 100-day 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