Click or drag to resize

InlineCollection Class

Represents a collection of Inline derived elements.
Inheritance Hierarchy
SystemObject
  SautinSoft.DocumentElementCollection
    SautinSoft.DocumentElementCollectionInline
      SautinSoft.DocumentInlineCollection

Namespace: SautinSoft.Document
Assembly: SautinSoft.Document (in SautinSoft.Document.dll) Version: 2024.7.18
Syntax
public sealed class InlineCollection : ElementCollection<Inline>
Remarks

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.

Example

See Developer Guide: Merge all paragraphs into a single in an existing PDF document

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)
        {
            // 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 });
        }
    }
}
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)
            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
See Also