Back to Devexpress

TextParagraph Class

officefileapi-devexpress-dot-docs-dot-presentation-44da9d18.md

latest13.6 KB
Original Source

TextParagraph Class

A paragraph in a text area.

Namespace : DevExpress.Docs.Presentation

Assembly : DevExpress.Docs.Presentation.v25.2.dll

NuGet Package : DevExpress.Docs.Presentation

Declaration

csharp
public class TextParagraph :
    PresentationObject
vb
Public Class TextParagraph
    Inherits PresentationObject

The following members return TextParagraph objects:

Remarks

To specify the text area content, add TextParagraph objects to the TextArea.Paragraphs collection. To split a paragraph into runs (spans of text that share the same formatting), add TextRun objects to the TextParagraph.Runs collection.

A new shape’s text area initially contains one default empty paragraph to keep the presentation document structure valid. This paragraph goes first in the TextArea.Paragraphs collection.

Example

The following code snippet creates a new presentation, adds three slides, and populates slides with content:

View Example

csharp
using DevExpress.Docs.Presentation;
using DevExpress.Drawing;
using System.Drawing;

namespace DxPresentationGetStarted;

public class Program {
    public static void Main(string[] _) {

        // Create a new presentation and remove the default empty slide
        Presentation presentation = new Presentation();
        presentation.Slides.Clear();

        // Specify a custom background color for the slide master to share this background across all child slides
        SlideMaster slideMaster = presentation.SlideMasters[0];
        slideMaster.Background = new CustomSlideBackground(new SolidFill(Color.FromArgb(194, 228, 249)));

        // Create a slide with the Title layout
        Slide slide1 = new Slide(slideMaster.Layouts.Get(SlideLayoutType.Title));
        foreach (Shape shape in slide1.Shapes) {
            // Specify the centered title text
            if (shape.PlaceholderSettings.Type is PlaceholderType.CenteredTitle) {
                shape.TextArea = new TextArea("Daily Testing Status Report");
            }
            // Set the subtitle to the current date
            if (shape.PlaceholderSettings.Type is PlaceholderType.Subtitle) {
                shape.TextArea = new TextArea($"{DateTime.Now: dddd, MMMM d, yyyy}");
            }
        }
        presentation.Slides.Add(slide1);

        // Create a slide based on the Object layout
        Slide slide2 = new Slide(slideMaster.Layouts.GetOrCreate(SlideLayoutType.Object));
        foreach (Shape shape in slide2.Shapes) {
            // Specify the slide title
            if (shape.PlaceholderSettings.Type is PlaceholderType.Title) {
                shape.TextArea = new TextArea("Today’s Highlights");
            }
            // Add a list of paragraphs to the slide
            if (shape.PlaceholderSettings.Type is PlaceholderType.Body) {
                TextArea textArea = new TextArea();
                textArea.Paragraphs.Clear();
                textArea.Paragraphs.Add(new TextParagraph("5 successful builds"));
                textArea.Paragraphs.Add(new TextParagraph("2 failed builds"));
                textArea.Paragraphs.Add(new TextParagraph("12 new bugs reported"));
                textArea.Paragraphs.Add(new TextParagraph("3 deployments"));
                textArea.Paragraphs.Add(new TextParagraph("1 rollback"));
                shape.TextArea = textArea;
            }
        }
        presentation.Slides.Add(slide2);

        // Create a slide based on the Object layout
        Slide slide3 = new Slide(slideMaster.Layouts.GetOrCreate(SlideLayoutType.Object));
        foreach (Shape shape in slide3.Shapes.ToList()) {
            // Specify the slide title
            if (shape.PlaceholderSettings.Type is PlaceholderType.Title) {
                shape.TextArea = new TextArea("Build Status");
            }
            // Add a table to a slide placeholder
            if (shape.PlaceholderSettings.Type is PlaceholderType.Body) {
                RectangleF rect = presentation.GetActualShapeBounds(slide3, shape);
                slide3.Shapes.Remove(shape);

                Table table = new Table(5, 5, rect.X, rect.Y, rect.Width, rect.Height);
                slide3.Shapes.Add(table);

                table[0, 0].TextArea.Text = "Build ID";
                table[0, 1].TextArea.Text = "Branch";
                table[0, 2].TextArea.Text = "Status";
                table[0, 3].TextArea.Text = "Duration";
                table[0, 4].TextArea.Text = "Triggered By";

                table[1, 0].TextArea.Text = "#5421";
                table[1, 1].TextArea.Text = "main";
                table[1, 2].TextArea.Text = "✅ Passed";
                table[1, 3].TextArea.Text = "4m 30s";
                table[1, 4].TextArea.Text = "Auto-schedule";

                table[2, 0].TextArea.Text = "#5420";
                table[2, 1].TextArea.Text = "ui-fix";
                table[2, 2].TextArea.Text = "❌ Failed";
                table[2, 3].TextArea.Text = "2m 18s";
                table[2, 4].TextArea.Text = "Push by dev1";

                table[3, 0].TextArea.Text = "#5419";
                table[3, 1].TextArea.Text = "main";
                table[3, 2].TextArea.Text = "✅ Passed";
                table[3, 3].TextArea.Text = "3m 52s";
                table[3, 4].TextArea.Text = "Auto-schedule";

                table[4, 0].TextArea.Text = "#5418";
                table[4, 1].TextArea.Text = "hotfix";
                table[4, 2].TextArea.Text = "❌ Failed";
                table[4, 3].TextArea.Text = "5m 1s";
                table[4, 4].TextArea.Text = "Manual";

                table.Style = new ThemedTableStyle(TableStyleType.LightStyle1);
                table.HasBandedRows = false;
            }
        }
        presentation.Slides.Add(slide3);

        // Add slide numbers and a footer to all slides
        presentation.HeaderFooterManager.AddSlideNumberPlaceholder(presentation.Slides);
        presentation.HeaderFooterManager.AddFooterPlaceholder(presentation.Slides, "ProductXCompany");

        // Save the presentation to a PPTX file
        FileStream outputStream = new FileStream(@"..\..\..\data\my-presentation.pptx", FileMode.Create);
        presentation.SaveDocument(outputStream);
        outputStream.Dispose();

        // Export the presentation to PDF
        presentation.ExportToPdf(new FileStream(@"..\..\..\data\exported-document.pdf", FileMode.Create));
    }
}
vb
Imports DevExpress.Docs.Presentation
Imports DevExpress.Drawing
Imports System.Drawing

Namespace DxPresentationGetStarted

    Public Class Program
        Public Shared Sub Main(__ As String())

            ' Create a new presentation and remove the default empty slide
            Dim presentation As Presentation = New Presentation()
            presentation.Slides.Clear()

            ' Specify a custom background color for the slide master to share this background across all child slides
            Dim slideMaster = presentation.SlideMasters(0)
            slideMaster.Background = New CustomSlideBackground(New SolidFill(Color.FromArgb(194, 228, 249)))

            ' Create a slide with the Title layout
            Dim slide1 As Slide = New Slide(slideMaster.Layouts.Get(SlideLayoutType.Title))
            For Each shape As Shape In slide1.Shapes
                ' Specify the centered title text
                If TypeOf shape.PlaceholderSettings.Type Is PlaceholderType.CenteredTitle Then
                    shape.TextArea = New TextArea("Daily Testing Status Report")
                End If
                ' Set the subtitle to the current date
                If TypeOf shape.PlaceholderSettings.Type Is PlaceholderType.Subtitle Then
                    shape.TextArea = New TextArea($"{Date.Now: dddd, MMMM d, yyyy}")
                End If
            Next
            presentation.Slides.Add(slide1)

            ' Create a slide based on the Object layout
            Dim slide2 As Slide = New Slide(slideMaster.Layouts.GetOrCreate(SlideLayoutType.Object))
            For Each shape As Shape In slide2.Shapes
                ' Specify the slide title
                If TypeOf shape.PlaceholderSettings.Type Is PlaceholderType.Title Then
                    shape.TextArea = New TextArea("Today’s Highlights")
                End If
                ' Add a list of paragraphs to the slide
                If TypeOf shape.PlaceholderSettings.Type Is PlaceholderType.Body Then
                    Dim textArea As TextArea = New TextArea()
                    textArea.Paragraphs.Clear()
                    textArea.Paragraphs.Add(New TextParagraph("5 successful builds"))
                    textArea.Paragraphs.Add(New TextParagraph("2 failed builds"))
                    textArea.Paragraphs.Add(New TextParagraph("12 new bugs reported"))
                    textArea.Paragraphs.Add(New TextParagraph("3 deployments"))
                    textArea.Paragraphs.Add(New TextParagraph("1 rollback"))
                    shape.TextArea = textArea
                End If
            Next
            presentation.Slides.Add(slide2)

            ' Create a slide based on the Object layout
            Dim slide3 As Slide = New Slide(slideMaster.Layouts.GetOrCreate(SlideLayoutType.Object))
            For Each shape As Shape In slide3.Shapes.ToList()
                ' Specify the slide title
                If shape.PlaceholderSettings.Type = PlaceholderType.Title Then
                    shape.TextArea = New TextArea("Build Status")
                End If
                ' Add a table to a slide placeholder
                If shape.PlaceholderSettings.Type = PlaceholderType.Body Then

                    Dim rect = presentation.GetActualShapeBounds(slide3, shape)
                    slide3.Shapes.Remove(shape)

                    Dim table As Table = New Table(5, 5, rect.X, rect.Y, rect.Width, rect.Height)
                    slide3.Shapes.Add(table)

                    table(0, 0).TextArea.Text = "Build ID"
                    table(0, 1).TextArea.Text = "Branch"
                    table(0, 2).TextArea.Text = "Status"
                    table(0, 3).TextArea.Text = "Duration"
                    table(0, 4).TextArea.Text = "Triggered By"

                    table(1, 0).TextArea.Text = "#5421"
                    table(1, 1).TextArea.Text = "main"
                    table(1, 2).TextArea.Text = "✅ Passed"
                    table(1, 3).TextArea.Text = "4m 30s"
                    table(1, 4).TextArea.Text = "Auto-schedule"

                    table(2, 0).TextArea.Text = "#5420"
                    table(2, 1).TextArea.Text = "ui-fix"
                    table(2, 2).TextArea.Text = "❌ Failed"
                    table(2, 3).TextArea.Text = "2m 18s"
                    table(2, 4).TextArea.Text = "Push by dev1"

                    table(3, 0).TextArea.Text = "#5419"
                    table(3, 1).TextArea.Text = "main"
                    table(3, 2).TextArea.Text = "✅ Passed"
                    table(3, 3).TextArea.Text = "3m 52s"
                    table(3, 4).TextArea.Text = "Auto-schedule"

                    table(4, 0).TextArea.Text = "#5418"
                    table(4, 1).TextArea.Text = "hotfix"
                    table(4, 2).TextArea.Text = "❌ Failed"
                    table(4, 3).TextArea.Text = "5m 1s"
                    table(4, 4).TextArea.Text = "Manual"

                    table.Style = New ThemedTableStyle(TableStyleType.LightStyle1)
                    table.HasBandedRows = False
                End If
            Next
            presentation.Slides.Add(slide3)

            ' Add slide numbers and a footer to all slides
            presentation.HeaderFooterManager.AddSlideNumberPlaceholder(presentation.Slides)
            presentation.HeaderFooterManager.AddFooterPlaceholder(presentation.Slides, "ProductXCompany")

            ' Save the presentation to a PPTX file
            Dim outputStream As FileStream = New FileStream("..\..\..\data\my-presentation.pptx", FileMode.Create)
            presentation.SaveDocument(outputStream)
            outputStream.Dispose()

            ' Export the presentation to PDF
            presentation.ExportToPdf(New FileStream("..\..\..\data\exported-document.pdf", FileMode.Create))
        End Sub
    End Class
End Namespace

Implements

ICloneable

Inheritance

Object PresentationObject TextParagraph

See Also

TextParagraph Members

DevExpress Presentation API Library: Work with Shape Text

DevExpress.Docs.Presentation Namespace