Дерево страниц — это иерархическая структура, которая упорядочивает страницы PDF-документа. Это позволяет пользовательским приложениям PDF быстро получать доступ к страницам и отображать их даже в документах с тысячами страниц. Корень дерева страниц содержит ссылки на дочерние узлы, которые могут быть как отдельными страницами, так и другими вложенными узлами.
Создание дерева страниц в PDF-документе и управление им является фундаментальной задачей при работе с PDF-файлами в C# и .NET. Древовидная структура страниц определяет порядок расположения страниц в документе, позволяя приложениям эффективно обрабатывать большие файлы в формате PDF. В этой статье мы рассмотрим как создать дерево страниц, используя библиотеку SautinSoft.PDF.
Пошаговое руководство:
Полный код
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");
}
}
}
}
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
Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.ru или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже: