Скрыть номера страниц в оглавлении

Введение

При работе с PDF-файлами иногда может возникнуть необходимость сгенерировать оглавление (TOC), но при этом сохранить его гладким, скрыв номера страниц. Возможно, документ будет выглядеть лучше без них, или, возможно, это эстетический выбор. Какова бы ни была причина, если вы работаете с Aspose.PDF для .NET, этот урок покажет вам, как именно скрыть номера страниц в вашем TOC.

Предпосылки

Прежде чем мы начнем, вам понадобится несколько вещей. Вот краткий контрольный список:

  • Установленная среда Visual Studio: для написания кода вам понадобится рабочая версия Visual Studio.
  • Библиотека Aspose.PDF для .NET: убедитесь, что вы установили библиотеку Aspose.PDF для .NET.
  • Временная лицензия: если вы тестируете функции, будет полезно иметь временную лицензию.

Импортные пакеты

Прежде чем перейти к коду, убедитесь, что вы импортировали следующие пространства имен в свой проект C#. Они предоставят необходимые классы и методы для работы с PDF-документами и создания вашего оглавления (TOC).

using Aspose.Pdf;
using Aspose.Pdf.Text;

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

Шаг 1: Инициализируйте ваш PDF-документ

Первое, что нам нужно сделать, это создать новый PDF-документ и добавить страницу для оглавления (TOC).

// Путь к каталогу документов.
string dataDir = "YOUR DOCUMENT DIRECTORY";
string outFile = dataDir + "HiddenPageNumbers_out.pdf";
Document doc = new Document();
Page tocPage = doc.Pages.Add();
  • dataDir: Это каталог, в котором будет сохранен ваш выходной файл.
  • Document(): инициализирует новый PDF-документ.
  • Pages.Add(): добавляет в документ новую пустую страницу, на которой впоследствии будет размещено оглавление.

Шаг 2: Настройте информацию и заголовок TOC

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

TocInfo tocInfo = new TocInfo();
TextFragment title = new TextFragment("Table Of Contents");
title.TextState.FontSize = 20;
title.TextState.FontStyle = FontStyles.Bold;
tocInfo.Title = title;
tocPage.TocInfo = tocInfo;
  • TocInfo: этот объект содержит всю информацию о TOC.
  • TextFragment: представляет текст заголовка TOC, здесь мы устанавливаем его как «Table Of Contents».
  • FontStyle: Мы стилизуем заголовок TOC, установив его размер равным 20 и сделав его жирным.
  • tocPage.TocInfo: Мы назначаем информацию оглавления странице, на которой будет отображаться оглавление.

Шаг 3: Скрыть номера страниц в оглавлении

А теперь самое интересное! Здесь мы настраиваем оглавление, чтобы скрыть номера страниц.

tocInfo.IsShowPageNumbers = false;
tocInfo.FormatArrayLength = 4;
  • IsShowPageNumbers: Это волшебный переключатель, который скрывает номера страниц. Установите его в положениеfalse, и номера страниц не будут отображаться в оглавлении.
  • FormatArrayLength: мы устанавливаем значение 4, указывая, что мы хотим определить форматирование для четырех уровней заголовков оглавления.

Шаг 4: Настройте форматирование оглавления

Чтобы сделать ваше оглавление более стильным, мы теперь определим форматирование для разных уровней заголовков.

tocInfo.FormatArray[0].Margin.Right = 0;
tocInfo.FormatArray[0].TextState.FontStyle = FontStyles.Bold | FontStyles.Italic;
tocInfo.FormatArray[1].Margin.Left = 30;
tocInfo.FormatArray[1].TextState.Underline = true;
tocInfo.FormatArray[1].TextState.FontSize = 10;
tocInfo.FormatArray[2].TextState.FontStyle = FontStyles.Bold;
tocInfo.FormatArray[3].TextState.FontStyle = FontStyles.Bold;
  • FormatArray: Этот массив управляет форматированием записей TOC. Каждый индекс представляет собой отдельный уровень заголовка.
  • Поля и стиль текста: мы устанавливаем поля и применяем стили шрифта, такие как полужирный, курсив и подчеркнутый, для каждого уровня заголовка.

Шаг 5: Добавьте заголовки в документ

Наконец, давайте добавим фактические заголовки, которые станут частью оглавления.

Page page = doc.Pages.Add();
for (int Level = 1; Level != 5; Level++)
{ 
    Heading heading2 = new Heading(Level); 
    TextSegment segment2 = new TextSegment(); 
    heading2.TocPage = tocPage; 
    heading2.Segments.Add(segment2); 
    heading2.IsAutoSequence = true; 
    segment2.Text = "this is heading of level " + Level; 
    heading2.IsInList = true; 
    page.Paragraphs.Add(heading2); 
}
  • Heading и TextSegment: Они представляют заголовки, которые появятся в вашем TOC. Каждый уровень получает свой собственный заголовок.
  • IsAutoSequence: Автоматически нумерует заголовки.
  • IsInList: обеспечивает отображение каждого заголовка в оглавлении.

Шаг 6: Сохраните документ.

После того, как все настроено, сохраните PDF-документ в указанном вами выходном файле.

doc.Save(outFile);

Вот и все! Вы успешно создали PDF-файл с оглавлением, и номера страниц скрыты!

Заключение

Создание оглавления в PDF и скрытие номеров страниц может показаться сложным, но с Aspose.PDF для .NET это проще простого. Следуя этому пошаговому руководству, вы узнали, как настраивать формат TOC, скрывать номера страниц и применять различные стили к заголовкам. Теперь вы можете создавать профессиональные PDF-файлы, соответствующие вашим точным потребностям.

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

Могу ли я отображать номера страниц для определенных заголовков в оглавлении?

Нет, Aspose.PDF скрывает или показывает номера страниц для всего TOC. Вы не можете выборочно скрыть их для определенных записей.

Можно ли добавить больше уровней в оглавление?

Да, вы можете увеличитьFormatArrayLength для определения большего количества уровней заголовков TOC.

Как изменить шрифт для всех записей оглавления?

Вы можете изменить шрифт, изменивTextState.Font свойство для каждого уровня вFormatArray.

Могу ли я вставлять гиперссылки в оглавление?

Да, вы можете связать каждую запись оглавления с определенным разделом документа, используяHeading.TocPage свойство.

Нужна ли мне лицензия для Aspose.PDF?

Да, для использования в производстве требуется действующая лицензия. Вы можете получить временную лицензиюздесь для проверки функций.