Available for: UI for ASP.NET MVC | UI for ASP.NET AJAX | UI for Blazor | UI for WPF | UI for WinForms | UI for Silverlight | UI for Xamarin | UI for WinUI | UI for ASP.NET Core | UI for .NET MAUI

New to Telerik Document Processing? Download free 30-day trial

TextFragment

TextFragment is content element that represents а single-line text object.

Inserting a TextFragment

TextFragment is a content element that can be added in the Content collection of a IContainerElement such as RadFixedPage. There are several approaches that can be adopted:

  • Create a TextFragment and add it to a page container
  • Use one of the factory methods of the ContentElementCollection to create a new text fragment and insert it into the respective container

    Both methods return the actual TextFragment instance so you can modify it.

Example 1: Create TextFragment and add it to container

RadFixedDocument document = new RadFixedDocument(); 
RadFixedPage page = new RadFixedPage(); 
document.Pages.Add(page); 
FixedContentEditor editor = new FixedContentEditor(page); 
 
SimplePosition simplePosition = new SimplePosition(); 
simplePosition.Translate(20, 20); 
TextFragment textFragment = page.Content.AddTextFragment("Document Processing Libraries"); 
textFragment.CharacterSpacing = 5; 
textFragment.WordSpacing = 15; 
textFragment.Position = simplePosition; 
 
SimplePosition simplePosition2 = new SimplePosition(); 
simplePosition2.Translate(20, 120); 
TextFragment textFragment2 = new TextFragment("Document Processing Libraries"); 
textFragment2.CharacterSpacing = 10; 
textFragment2.WordSpacing = 20; 
textFragment2.Position = simplePosition2; 
page.Content.Add(textFragment2); 

Inserted TextFragments

TextFragments in PdfProcessing

TextFragment represents a single line of text. In order to make your text "flows" in a document you should make sure all fragments you add can fit in a line or you can use FixedContentEditor.

The '\r' and '\n' characters don't have the usual meaning of "go to next line" when they are inserted into a PDF document and you cannot simply insert text containing these characters to produce multiline text. Instead, you should split the text and insert it line by line.

Modifying a TextFragment

TextFragment exposes the following properties that can modify the look of the represented text:

  • CharacterSpacing: The spacing between the characters in the text.

  • WordSpacing: The spacing between the words in the text.

    Only space character (Unicode 0x32) is considered a word break in RadPdfProcessing's document model.

  • HorizontalScaling: The horizontal scaling that is applied to the characters.

  • Font: The font that is used to draw the text.

  • FontSize: The font size. The measurement unit used for font size is Device Independent Pixels (DIPs). You can convert it to points or other units using the Unit class.

  • RenderingMode: Enumeration representing the way the text should be rendered. It can have one of the following values:

    • Fill: Fill text (the default value).

    • Stroke: Stroke text.

    • FillAndStroke: Fill, then stroke text.

    • None: Neither fill nor stroke text (invisible).

    • FillAndAddToClippingPath: Fill text and add to path for clipping (see above).

    • StrokeAndAddToClippingPath: Stroke text and add to path for clipping.

    • FillStrokeAndAddToClippingPath: Fill, then stroke text and add to path for clipping

    • AddToClippingPath: Add text to path for clipping.

  • TextRise: Specifies the distance, in unscaled text space units, to move the baseline up or down from its default location.

  • Fill: The color that is used to fill the text. The default value is Black.

  • Stroke: The color that is used to stroke text. The default value is Black.

  • StrokeThickness: The width of the stroke line.

  • StrokeLineCap: Specifies the shape, which is used at the ends of open paths, used to draw a letter, when they are stroked.

    • Flat: Flat line cap.

    • Round: Round line cap.

    • Square: Square line cap.

  • StrokeLineJoin: Specifies the shape to be used at the corners of paths that are stroked. Join styles are significant only at the points where consecutive segments of a path connect at an angle.

    • Bevel: Produces a diagonal corner.

    • Miter: Produces a sharp corner. If the segments meet at too sharp angle, a bevel join is used instead.

    • Round: Produces a smooth, circular arc between the lines.

  • StrokeDashArray: The pattern of dashes and gaps used to stroke paths.

  • StrokeDashOffset: The distance from the start of a line to the beginning of a dash pattern.

  • AlphaConstant: Specifying the constant shape or constant opacity value to be used for nonstroking operations.

  • MiterLimit: The limit of the thickness of the join on a mitered corner.

  • Text: Represents the text that is drawn.

  • Position: The Position where the text element is drawn.

Example 2: Modifying TextFragment properties

RadFixedDocument document = new RadFixedDocument(); 
RadFixedPage page = document.Pages.AddPage(); 
FixedContentEditor editor = new FixedContentEditor(page); 
 
SimplePosition simplePosition = new SimplePosition(); 
simplePosition.Translate(20, 20); 
 
TextFragment textFragment = page.Content.AddTextFragment("Document Processing Libraries"); 
textFragment.CharacterSpacing = 5; 
textFragment.WordSpacing = 15; 
textFragment.HorizontalScaling = 1; 
textFragment.Font = FontsRepository.Courier; 
textFragment.FontSize = UnitHelper.PointToDip(12); 
textFragment.RenderingMode = RenderingMode.Stroke; 
textFragment.TextRise = 5; 
textFragment.Fill = new RgbColor(255, 0, 255); 
textFragment.Stroke = new RgbColor(0, 0, 255); 
textFragment.StrokeThickness = 1; 
textFragment.StrokeLineCap = Telerik.Windows.Documents.Fixed.Model.Graphics.LineCap.Flat; 
textFragment.StrokeLineJoin = Telerik.Windows.Documents.Fixed.Model.Graphics.LineJoin.Round; 
textFragment.StrokeDashArray = new double[] { 1 }; 
textFragment.StrokeDashOffset = 2; 
textFragment.AlphaConstant = 0.5; 
textFragment.MiterLimit = 2; 
textFragment.Position = simplePosition; 

See Also

In this article