[]
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)).
public class TextLayoutSplitter
Public Class TextLayoutSplitter
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);
Name | Description |
---|---|
TextLayoutSplitter(TextLayout) | Initializes a new instance of the TextLayoutSplitter class. |
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. |
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). |