[]
        
(Showing Draft Content)

GrapeCity.Documents.Text.TextLayoutSplitter

TextLayoutSplitter Class

Helper class for efficient splitting the content of a TextLayout object into multiple portions. May be used to split a long text into multiple pages or columns, including balanced columns (see SplitAndBalance(PageSplitArea[], TextSplitOptions)).

Inheritance
TextLayoutSplitter
Namespace: GrapeCity.Documents.Text
Assembly: DS.Documents.Imaging.dll
Syntax
public class TextLayoutSplitter
Public Class TextLayoutSplitter
Remarks

This class does not provide any additional functionality, but it streamlines the code rendering a TextLayout onto multiple pages or columns, and ensures optimal performance by keeping allocation of new text layouts to hold the overflow to a minimum.

A typical use of this class to render a long text onto multiple pages would be as follows, provided that 'tl' is a TextLayout instance containing the text to render, with specified available bounds (MaxWidth, MaxHeight), and 'tso' is an instance of TextSplitOptions containing the desired split options:
...
tl.PerformLayout(true);
var tls = new TextLayoutSplitter(tl);
for (var tlPage = tls.Split(tso); tlPage != null; tlPage = tls.Split(to))
  doc.Pages.Add().Graphics.DrawTextLayout(tlPage, PointF.Empty);

Constructors

Name Description
TextLayoutSplitter(TextLayout)

Initializes a new instance of the TextLayoutSplitter class.

Properties

Name Description
CurrentLayout

Gets the text layout representing the current portion to render, or null if a split operation has not been performed yet.

RestLayout

Gets the remaining portion of the original text layout.

SplitResult

Gets the result of the last split operation.

Methods

Name Description
Split(TextSplitOptions)

Fits all or the first portion of the original text layout into the current layout bounds.

SplitAndBalance(PageSplitArea[], TextSplitOptions)

Fits all or the first portion of the current text layout into one or more layout areas (such as page columns).