Add multiline text to a PDF document

The MultilineTextShape lets you add multiline text to PDF with mixed formatting and line-breaking.

The content of the multiline text is specified as a collection of fragments. A fragment has properties that specify both content (text) and appearance (font, font size, color). All fragments will be displayed concatenated and broken across lines as needed.

C# code sample that add multiline text to PDF

The following adds a MultilineTextShape to the horizontal center of a PDF document:

const string text =
   "With PDFKit.NET you can Manipulate existing " +
   "PDF documents and forms using a highly intuitive object model. " +
   "Add pages, stamp content and fill forms.";

// create a new document with a single page
Document document = new Document();
Page page = new Page(PageSize.Letter);
document.Pages.Add(page);

// add a shapes collection at the center of the page
// it will be the container for multiline text shapes
ShapeCollection shapes = new ShapeCollection
{
    Width = page.Width / 2,
    Height = page.Height * 0.85
};
shapes.Transform = new TranslateTransform
{
    X = (page.Width - shapes.Width) / 2,
    Y = (page.Height - shapes.Height) / 2
};
page.Overlay.Add(shapes);

// dock text to the top of the shapes collection - align left
const int bottomMargin = 20;
Fragment fragment = new Fragment(text, Font.TimesRoman, 16);
MultilineTextShape multilineText = new MultilineTextShape
{
    Dock = DockStyle.Top,
    Margin = { Bottom = bottomMargin }
};
multilineText.Fragments.Add(fragment);
shapes.Add(multilineText);

// save result
using (FileStream file = new FileStream(@"..\..\dockmultilinetext.pdf", FileMode.Create, FileAccess.Write))
{
    document.Write(file);
}
' create a new document
Dim document As New Document()

' append a new page (portrait Letter)
Dim landscape As Boolean = False
Dim page As New Page(PageSize.Letter, landscape)
document.Pages.Add(page)

' stamp a text paragraph at the center
Dim multilineText As New MultilineTextShape()
Dim translate As New TranslateTransform()
multilineText.Transform = translate

Dim fragment As New Fragment(text, Font.TimesRoman, 12)
multilineText.Fragments.Add(fragment)

' center horizontally
multilineText.Width = page.Width / 2
translate.X = (page.Width - multilineText.Width) / 2

' Y corresponds to the top of the paragraph
translate.Y = page.Height / 2

page.VisualOverlay.Add(multilineText)

Using file As New FileStream("..\..\multilinetext.pdf", FileMode.Create, FileAccess.Write)
    document.Write(file)
End Using

The text will be automatically split up into multiple lines based on the Width you specified. The resulting PDF will look like this:

Add Multiline Text To Pdf

In addition, you can set the Height property but this is used if the multiline text shape is auto-sized. This is the case if and only if there is exactly one fragment that has a zero font size.

Download PDFKit.NET 4.0
We will send you a download link
Why do we ask your email address?
We send tips that speed up your evaluation
We let you know about bug fixes
You can always unsubscribe with one click
We never share your address with a 3rd party
Thank you for your download

We have sent an email with a download link. Alternatively, you may want to use the NuGet package manager to install our library.

Nuget ID

Use the NugetID and start right away, or download the package and install it handmatically