Create a page tree in C# and VB.NET

With GemBox.Pdf, you can get, create, remove or reorder PDF document pages in your C# or VB.NET application.

The pages of a PDF document are accessed through a structure known as the page tree, which defines the ordering of pages in the document. The tree structure allows PDF consumer applications, using only limited memory, to quickly open a PDF document containing thousands of pages. For more information, see Document Structure help page.

The following example shows how you can create a page tree structure from scratch.

PDF page tree created with GemBox.Pdf C#/VB.NET library
Screenshot of PDF pages created with GemBox.Pdf library
using GemBox.Pdf;
using GemBox.Pdf.Content;

class Program
{
    static void Main()
    {
        // If using Professional version, put your serial key below.
        ComponentInfo.SetLicense("FREE-LIMITED-KEY");

        using (var document = new PdfDocument())
        {
            using (var formattedText = new PdfFormattedText())
            {
                // Get a page tree root node.
                var rootNode = document.Pages;
                // Set page rotation for a whole set of pages.
                rootNode.Rotate = 90;

                // Create a left page tree node.
                var childNode = rootNode.Kids.AddPages();
                // Overwrite a parent tree node rotation value.
                childNode.Rotate = 0;

                // Create a first page.
                var page = childNode.Kids.AddPage();
                formattedText.Append("FIRST PAGE");
                page.Content.DrawText(formattedText, new PdfPoint(0, 0));

                // Create a second page and set a page media box value.
                page = childNode.Kids.AddPage();
                page.SetMediaBox(0, 0, 200, 400);
                formattedText.Clear();
                formattedText.Append("SECOND PAGE");
                page.Content.DrawText(formattedText, new PdfPoint(0, 0));

                // Create a right page tree node.
                childNode = rootNode.Kids.AddPages();
                // Set a media box value.
                childNode.SetMediaBox(0, 0, 100, 200);

                // Create a third page.
                page = childNode.Kids.AddPage();
                formattedText.Clear();
                formattedText.Append("THIRD PAGE");
                page.Content.DrawText(formattedText, new PdfPoint(0, 0));

                // Create a fourth page and overwrite a rotation value.
                page = childNode.Kids.AddPage();
                page.Rotate = 0;
                formattedText.Clear();
                formattedText.Append("FOURTH PAGE");
                page.Content.DrawText(formattedText, new PdfPoint(0, 0));
            }

            document.Save("Page Tree.pdf");
        }
    }
}
Imports GemBox.Pdf
Imports GemBox.Pdf.Content

Module Program

    Sub Main()

        ' If using Professional version, put your serial key below.
        ComponentInfo.SetLicense("FREE-LIMITED-KEY")

        Using document = New PdfDocument()

            Using formattedText = New PdfFormattedText()

                ' Get a page tree root node.
                Dim rootNode = document.Pages
                ' Set page rotation for a whole set of pages.
                rootNode.Rotate = 90

                ' Create a left page tree node.
                Dim childNode = rootNode.Kids.AddPages()
                ' Overwrite a parent tree node rotation value.
                childNode.Rotate = 0

                ' Create a first page.
                Dim page = childNode.Kids.AddPage()
                formattedText.Append("FIRST PAGE")
                page.Content.DrawText(formattedText, New PdfPoint(0, 0))

                ' Create a second page and set a page media box value.
                page = childNode.Kids.AddPage()
                page.SetMediaBox(0, 0, 200, 400)
                formattedText.Clear()
                formattedText.Append("SECOND PAGE")
                page.Content.DrawText(formattedText, New PdfPoint(0, 0))

                ' Create a right page tree node.
                childNode = rootNode.Kids.AddPages()
                ' Set a media box value.
                childNode.SetMediaBox(0, 0, 100, 200)

                ' Create a third page.
                page = childNode.Kids.AddPage()
                formattedText.Clear()
                formattedText.Append("THIRD PAGE")
                page.Content.DrawText(formattedText, New PdfPoint(0, 0))

                ' Create a fourth page and overwrite a rotation value.
                page = childNode.Kids.AddPage()
                page.Rotate = 0
                formattedText.Clear()
                formattedText.Append("FOURTH PAGE")
                page.Content.DrawText(formattedText, New PdfPoint(0, 0))
            End Using

            document.Save("Page Tree.pdf")
        End Using
    End Sub
End Module

Want more?

Next example GitHub

Check the next example or select an example from the menu. You can also download our examples from the GitHub.


Like it?

Download Buy

If you want to try the GemBox.Pdf yourself, you can download the free version. It delivers the same performance and set of features as the professional version, but with some operations limited. To remove the limitation, you need to purchase a license.