Designing Page Tree in C# and .NET

With PDF.Net, you can retrieve, create, delete, or reorder pages of a PDF document in your C# or VB.NET application.

The pages of a PDF document are accessed through a structure called the page tree, which defines the order of the pages in the document. The tree structure allows PDF consumer applications with limited memory to quickly open PDF documents containing thousands of pages. For more information, see Document Structure help page.

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

Полный код

using System;
using System.IO;
using SautinSoft;
using SautinSoft.Pdf;
using SautinSoft.Pdf.Content;

namespace Sample
{
    class Sample
    {
        /// <summary>
        /// Create a page tree.
        /// </summary>
        /// <remarks>
        /// Details: https://sautinsoft.com/products/pdf/help/net/developer-guide/page-tree.php
        /// </remarks>
        static void Main(string[] args)
        {
            // Before starting this example, please get a free 100-day trial key:
            // https://sautinsoft.com/start-for-free/

            // Apply the key here:
            // PdfDocument.SetLicense("...");

            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");
            }

        }
    }
}

Download

Option Infer On

Imports System
Imports System.IO
Imports SautinSoft
Imports SautinSoft.Pdf
Imports SautinSoft.Pdf.Content

Namespace Sample
	Friend Class Sample
		''' <summary>
		''' Create a page tree.
		''' </summary>
		''' <remarks>
		''' Details: https://sautinsoft.com/products/pdf/help/net/developer-guide/page-tree.php
		''' </remarks>
		Shared Sub Main(ByVal args() As String)
			' Before starting this example, please get a free license:
			' https://sautinsoft.com/start-for-free/

			' Apply the key here:
			' PdfDocument.SetLicense("...");

			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")
				System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo("Page Tree.pdf") With {.UseShellExecute = True})

			End Using

		End Sub
	End Class
End Namespace

Download


Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу [email protected] или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже:



Вопросы и предложения всегда приветствуются!

Мы разрабатываем компоненты .Net с 2002 года. Мы знаем форматы PDF, DOCX, RTF, HTML, XLSX и Images. Если вам нужна помощь в создании, изменении или преобразовании документов в различных форматах, мы можем вам помочь. Мы напишем для вас любой пример кода абсолютно бесплатно.