Навигация и действия

Навигация и действия

Навигация и действия

Aspose.PDF FOSS for .NET поддерживает структуры навигации PDF — закладки (outlines), назначения страниц и действия документа. Это позволяет создавать интерактивные документы с навигацией по оглавлению, межстраничными ссылками и триггерами JavaScript.


Оглавления документа (закладки)

OutlineCollection содержит дерево закладок документа. Каждый OutlineItemCollection представляет собой запись закладки с заголовком и местом назначения.

using var doc = Document.Open(pdfBytes);

foreach (var item in doc.Outlines)
{
    Console.WriteLine($"Bookmark: {item.Title}");
}

Создание закладок

using var doc = Document.Open(pdfBytes);

var bookmark = new OutlineItemCollection(doc.Outlines);
bookmark.Title = "Chapter 1";
bookmark.Action = new GoToAction(doc.Pages[1]);
doc.Outlines.Add(bookmark);

doc.Save("with-bookmarks.pdf");

Действия GoTo

GoToAction переходит к конкретной странице и типу подгонки в том же документе.

var goTo = new GoToAction(doc.Pages[3]);

Именованные действия

NamedAction вызывает предопределённые команды просмотрщика PDF, такие как NextPage, PrevPage, FirstPage и LastPage.

var nextPage = PdfAction.CreateNamed("NextPage");

Действия GoToRemote

GoToRemoteAction открывает внешний PDF‑файл и переходит к определённой странице.

var remote = new GoToRemoteAction("other.pdf", 1);

Запуск действий

LaunchAction открывает внешний файл (любой формат) из ссылки PDF.

var launch = new LaunchAction("readme.txt");

Коллекции назначения

DestinationCollection сопоставляет именованные назначения со страницами, поддерживая навигацию по перекрестным ссылкам в больших документах.

var dest = doc.Destinations;
int pageNum = dest.GetPageNumber("section2");

Советы и лучшие практики

  • Постройте дерево закладок, отражающее иерархию разделов вашего документа, для удобной навигации.
  • Используйте GoToAction с FitType для управления отображением целевой страницы (подгонка по ширине, подгонка по странице и т.д.).
  • Именованные действия зависят от просмотрщика — используйте только стандартные имена (NextPage, PrevPage, FirstPage, LastPage).
  • Для ссылок между документами используйте GoToRemoteAction вместо URI‑действий, указывающих на файлы PDF.
  • Коллекции действий на странице позволяют добавить несколько действий, которые выполняются при открытии страницы.

Общие проблемы

ПроблемаПричинаРешение
Закладка не переходитДействие не установлено для элемента оглавленияНазначить GoToAction для OutlineItemCollection.Action
Действие GoTo указывает на неправильную страницуИндекс страницы внутренне начинается с 0, а страницы нумеруются с 1Использовать doc.Pages[n] напрямую в конструкторе GoToAction
Именованное действие не оказывает эффектаПросмотрщик не поддерживает именованное действиеИспользовать только стандартные имена

Часто задаваемые вопросы

Как создать оглавление?

Создайте OutlineItemCollection записи для каждого раздела, каждая с
GoToAction, направленной на первую страницу раздела.

Можно ли создавать вложенные закладки?

Да. Добавьте дочерние OutlineItemCollection записи в родительскую закладку, чтобы создать иерархический план.

Какие типы подгонки доступны для действий GoTo?

Fit, FitH (подгонка по ширине), FitV (подгонка по высоте), FitR (подгонка по прямоугольнику), и FitB (подгонка по ограничивающему прямоугольнику).


Сводка справки API

Class / MethodDescription
OutlineCollectionКоллекция закладок верхнего уровня в документе
OutlineItemCollectionОтдельный элемент закладки с заголовком и действием
GoToActionПереход к странице в том же документе
GoToRemoteActionПереход к странице во внешнем PDF
LaunchActionОткрытие внешнего файла
NamedActionВызов предопределённой команды просмотрщика
PdfAction.CreateGoToФабрика действий GoTo
PdfAction.CreateNamedФабрика именованных действий
ActionCollectionКоллекция действий на странице или аннотации
DestinationCollectionРеестр именованных назначений
ActionTypeПеречисление: GoTo, URI, JavaScript, Named, Launch

См. также

 Русский