Манипулирование закладками на C# и .NET

Закладки являются важной функцией в PDF-документах, обеспечивая удобный способ навигации по содержимому. Они улучшают взаимодействие с пользователем, позволяя быстро переходить к определённым разделам документа. В этой статье мы рассмотрим, как добавлять закладки в PDF-документы на C# и .NET, используя возможности библиотеки SautinSoft.Pdf.

Вот несколько способов, которыми закладки могут помочь в работе пользователя:

  • Быстрая навигация. Закладки позволяют пользователям быстро переходить к нужным разделам документа, не пролистывая его вручную. Это особенно полезно в длинных документах, таких как книги, отчёты или технические руководства.
  • Организация контента. Закладки помогают структурировать документ, делая его более организованным и удобным для чтения. Пользователи могут просматривать оглавление и быстро находить интересующие их разделы.
  • Повышенная производительность. С помощью закладок пользователи могут быстрее находить нужную информацию, что экономит время и повышает производительность. Это особенно важно для специалистов, работающих с большими объемами данных.
  • Улучшение пользовательского опыта. Закладки делают взаимодействие с документом более интуитивным и удобным. Пользователи могут легко возвращаться к важным разделам, что улучшает общее впечатление от работы с документом.
  • Поддержка многоуровневой структуры. Закладки могут поддерживать многоуровневую структуру, которая позволяет пользователям видеть иерархию разделов и подразделов. Это помогает лучше понять структуру документа и найти нужную информацию.
  • Совместимость с различными устройствами. Закладки работают на разных устройствах и платформах, что делает их универсальным инструментом для навигации. Пользователи могут легко использовать закладки на компьютерах, планшетах и смартфонах.
  • Поддержка поиска. В некоторых случаях закладки можно интегрировать с функцией поиска, которая позволяет пользователям находить нужные разделы по ключевым словам или фразам.
  • Пошаговое руководство:

  1. Добавить SautinSoft.PDF из NuGet.
  2. Создать новый PDF-документ.
  3. Получить количество страниц.
  4. Добавить новый элемент оглавления (закладку) в конец списка оглавления документа.
  5. Сохранить документ.

Выходной результат:

Полный код

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

class Program
{
    /// <summary>
    /// Bookmarks.
    /// </summary>
    /// <remarks>
    /// Details: https://sautinsoft.com/products/pdf/help/net/developer-guide/bookmarks.php
    /// </remarks>
    static void Main()
    {
        // Before starting this example, please get a free trial key:
        // https://sautinsoft.com/start-for-free/

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

        using (var document = new PdfDocument())
        {
            document.Pages.Add();
            // Remove all bookmarks.
            document.Outlines.Clear();
            // Get the number of pages.
            int numberOfPages = document.Pages.Count;
            for (int i = 0; i < numberOfPages; i += 10)
            {
                // Add a new outline item (bookmark) at the end of the document outline collection.
                var bookmark = document.Outlines.AddLast(string.Format("PAGES {0}-{1}", i + 1, Math.Min(i + 10, numberOfPages)));
                // Set the explicit destination on the new outline item (bookmark).
                bookmark.SetDestination(document.Pages[i], PdfDestinationViewType.FitRectangle, 0, 0, 100, 100);
                for (int j = 0; j < Math.Min(10, numberOfPages - i); j++)
                    // Add a new outline item (bookmark) at the end of parent outline item (bookmark) and set the explicit destination.
                    bookmark.Outlines.AddLast(string.Format("PAGE {0}", i + j + 1)).SetDestination(document.Pages[i + j], PdfDestinationViewType.FitPage);
            }
            document.PageMode = PdfPageMode.UseOutlines;
            document.Save("Bookmarks.pdf");
        }

        System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo("Bookmarks.pdf") { UseShellExecute = true });
    }
}

Download

Option Infer On

Imports System
Imports SautinSoft.Pdf
Imports System.IO

Friend Class Program
	''' <summary>
	''' Bookmarks.
	''' </summary>
	''' <remarks>
	''' Details: https://sautinsoft.com/products/pdf/help/net/developer-guide/bookmarks.php
	''' </remarks>
	Shared Sub Main()
		' Before starting this example, please get a free trial key:
		' https://sautinsoft.com/start-for-free/

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

		Using document = New PdfDocument()
			document.Pages.Add()
			' Remove all bookmarks.
			document.Outlines.Clear()
			' Get the number of pages.
			Dim numberOfPages As Integer = document.Pages.Count
			Dim i As Integer = 0
			Do While i < numberOfPages
				' Add a new outline item (bookmark) at the end of the document outline collection.
				Dim bookmark = document.Outlines.AddLast(String.Format("PAGES {0}-{1}", i + 1, Math.Min(i + 10, numberOfPages)))
				' Set the explicit destination on the new outline item (bookmark).
				bookmark.SetDestination(document.Pages(i), PdfDestinationViewType.FitRectangle, 0, 0, 100, 100)
				Dim j As Integer = 0
				Do While j < Math.Min(10, numberOfPages - i)
					' Add a new outline item (bookmark) at the end of parent outline item (bookmark) and set the explicit destination.
					bookmark.Outlines.AddLast(String.Format("PAGE {0}", i + j + 1)).SetDestination(document.Pages(i + j), PdfDestinationViewType.FitPage)
					j += 1
				Loop
				i += 10
			Loop
			document.PageMode = PdfPageMode.UseOutlines
			document.Save("Bookmarks.pdf")
		End Using

		System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo("Bookmarks.pdf") With {.UseShellExecute = True})
	End Sub
End Class

Download


Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.ru или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже:



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

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