IRONSOFTWAREHOME

Jak dodac zakladki i spis treści w plikach PDF w C# za pomoca IronPDF

Curtis Chau
Curtis Chau
Updated: 20 maja 2026

IronPDF pozwala dodawac zakladki (spisy treści) do dokumentów PDF w C#, tworząc pomoc nawigacyjną podobną do spisu treści. Dodawaj jedno- lub wielowarstwowe zakladki, aby zwiększyć uzytecznosc dokumentu i ulatwic użytkownikom szybkie przejscie do kluczowych sekcji. Ta funkcja działa bezproblemowo w środowiskach Windows, Linux i macOS.

Szybki start: dodawanie zakladek do PDF w C#

Rozpocznij szybko prace z IronPDF, dodajac zakladki do dokumentów PDF. Ten przewodnik pokazuje, jak załadować istniejący dokument PDF, dodac zakladki do nawigacji i zapisać zaktualizowany dokument. Idealne dla deweloperow chcących zwiększyć funkcjonalność PDF w swoich projektach C#.

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Skopiuj i uruchom ten fragment kodu.

    var pdf = new IronPdf.PdfDocument("example.pdf");
    pdf.Bookmarks.AddBookMarkAtEnd("Chapter 1", 1);
    pdf.SaveAs("bookmarked.pdf");
    C#
  3. 3Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
    arrow pointer

Jak pracowac z zakladkami PDF w C#?

W Adobe Acrobat Reader spisy treści (znane również jako zakladki) sa wywietlane w lewym pasku bocznym, zapewniając wygodny sposob przejscia do kluczowych sekcji dokumentu. Zakladki funkcjonuja jako interaktywny spis treści, umożliwiajac czytelnikom skuteczna nawigacje po skomplikowanych dokumentach.

Dzięki IronPDF możesz importowac dokumenty PDF i wykonywać różne operacje na istniejących spisach treści, takie jak dodawanie, zmienianie kolejnosci, edytowanie właściwości i usuwanie zakladek. Daje to pełna kontrole nad organizacja i struktura plików PDF, podobnie jak można łączyć lub dzielic pliki PDF w celu zarządzania dokumentami.

Porady: Wszystkie indeksy stron maji indeksacje rozpoczynajaca sie od zera.

Jak dodac zakladki jednopoziomowe?

Dodanie zakladki w IronPDF jest proste. Użyj metody AddBookmarkAtEnd, określając nazwę zakładki i odpowiadający jej indeks strony. Taka funkcjonalność dobrze integruje sie z innymi operacjami na PDF, jak dodawanie nagłówków i stopki lub ustawianie niestandardowych marginesow w celu tworzenia profesjonalnych dokumentów. Poniżej znajduje się przykład:

using IronPdf;

// Create a new PDF or edit an existing document.
PdfDocument pdf = PdfDocument.FromFile("existing.pdf");

// Add a bookmark
pdf.Bookmarks.AddBookMarkAtEnd("NameOfBookmark", 0);

// Add a sub-bookmark
pdf.Bookmarks.AddBookMarkAtEnd("NameOfSubBookmark", 1);

pdf.SaveAs("singleLayerBookmarks.pdf");

Metoda AddBookMarkAtEnd dodaje zakładki na końcu istniejącej listy zakładek. Aby mieć większą kontrolę nad umiejscowieniem zakładek, użyj AddBookMarkAtStart, aby wstawić zakładki na początku listy. Każda zakładka odnosi się do określonego indeksu strony, umożliwiając precyzyjną nawigację w dokumencie.

Dokument z zakladkami jednopoziomowymi

Jak stworzyć hierarchie zakladek wielowarstwowych?

IronPDF pozwala dodawac zakladki w strukturze drzewa, co jest szczegółnie przydatne w utrzymaniu nawigacji w obszernych dokumentach PDF. Ta funkcja jest wartosciowa w przypadku pracy z rozlegllymi zbiorami dokumentów egzaminacyjnych, raportow sprzedaży czy zapisami paragonow z różnych dat i lokalizacji w jednym dokumencie PDF. Podobnie jak można tworzyć formularze PDF do gromadzenia danych, strukturalne zakladki pomagaja hierarchicznie organizowac skomplikowane informacje.

Metoda AddBookMarkAtEnd zwraca obiekt IPdfBookMark, dając możliwość dodawania podrzędnych zakładek. Na przykład, użyj Children.AddBookMarkAtStart("Date1", 0) lub Children.AddBookMarkAtEnd("Date1", 0), aby dodać podrzędne zakładki do zakładki "Egzamin". Ta zagniezdzona struktura tworzy hierarchiczna organizacje, która odzwierciedla logiczny przepływ dokumentu. Poniższy kod pokazuje ten koncepcje:

using IronPdf;

// Load existing PDF document
PdfDocument pdf = PdfDocument.FromFile("examinationPaper.pdf");

// Assign IPdfBookMark object to a variable
var mainBookmark = pdf.Bookmarks.AddBookMarkAtEnd("Examination", 0);

// Add bookmark for days
var date1Bookmark = mainBookmark.Children.AddBookMarkAtStart("Date1", 1);

// Add bookmark for type of test
var paperBookmark = date1Bookmark.Children.AddBookMarkAtStart("Paper", 1);
paperBookmark.Children.AddBookMarkAtEnd("PersonA", 3);
paperBookmark.Children.AddBookMarkAtEnd("PersonB", 4);

// Add bookmark for days
var date2Bookmark = mainBookmark.Children.AddBookMarkAtEnd("Date2", 5);

// Add bookmark for type of test
var computerBookmark = date2Bookmark.Children.AddBookMarkAtStart("Computer", 5);
computerBookmark.Children.AddBookMarkAtEnd("PersonC", 6);
computerBookmark.Children.AddBookMarkAtEnd("PersonD", 7);

pdf.SaveAs("multiLayerBookmarks.pdf");

To hierarchiczne podejście jest szczegółnie wartosciowe przy pracy ze zlozonymi dokumentami wymagajacymi szczegółowe organizacji. Zagniezdzona struktura pozwala użytkownikom na rozwijanie i zwijanie sekcjach zakladek, co sprawia, że nawigacja jest intuicyjna nawet w dokumentach z setkami stron.

Dokument z zakladkami wielowarstwowymi

Jak automatycznie generowac zakladki z naglowkow HTML?

Podczas renderowania HTML do PDF, IronPDF moze automatycznie zbudowac hierarchiczny zarys zakladek na podstawie struktury naglowkow dokumentu (h1-h6) lub dowolnych niestandardowych selektorow CSS. To usuwa potrzebę ręcznego wywoływania AddBookMarkAtEnd dla każdej sekcji.

Włącz funkcję dzięki właściwości AutoBookmarksFromHeadings w RenderingOptions przed wywołaniem RenderHtmlAsPdf lub RenderUrlAsPdf:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Master switch: auto-generate bookmarks from HTML headings (h1-h6) during rendering
renderer.RenderingOptions.AutoBookmarksFromHeadings = true;

var html = @"
<h1>Annual Report</h1>
<h2>Executive Summary</h2>
<p>Overview of the year.</p>
<h2>Financial Results</h2>
<h3>Revenue</h3>
<h3>Expenses</h3>
<h2>Outlook</h2>
<p>Looking forward.</p>";

var pdf = renderer.RenderHtmlAsPdf(html);

// pdf.Bookmarks is already populated with a hierarchical outline matching the heading structure
pdf.SaveAs("auto-bookmarked.pdf");

Nastepujace wlasciwosci kontroluja, ktore elementy sa oznaczane zakladkami:

  • AutoBookmarksFromHeadings (bool, domyślne false): Włącz tę funkcję. Gdy ustawiony na true, IronPDF automatycznie tworzy kontur zakładek zgodnie z nagłówkami HTML.
  • AutoBookmarkMinHeadingLevel (int, domyślne 1): Najwyższy poziom nagłówka od którego zaczynać. Ustaw na 1, aby uwzględnić h1 (szczyt dokumentu).
  • AutoBookmarkMaxHeadingLevel (int, domyślne 6): Najgłębszy poziom nagłówka, który uwzględnić. Ustaw na 3, aby oznaczyć zakładkami jedynie h1, h2 i h3 - ignorując h4 do h6.
  • AutoBookmarkCssSelectors (string[], domyślne null): Użyj niestandardowych selektorów CSS zamiast tagów nagłówków. Na przykład: ".chapter-title" lub "[data-bookmark]".

Dostosowywanie poziomow naglowkow i selektorow CSS

Aby ograniczyc zakladki do naglowkow najwyzszego poziomu tylko:

renderer.RenderingOptions.AutoBookmarksFromHeadings = true;
renderer.RenderingOptions.AutoBookmarkMaxHeadingLevel = 3;

Aby oznaczyc zakladkami niestandardowe elementy zamiast naglowkow, dostarcz selektory CSS:

renderer.RenderingOptions.AutoBookmarksFromHeadings = true;
renderer.RenderingOptions.AutoBookmarkCssSelectors = new[]
{
    "h1",
    ".chapter-title",
    "[data-bookmark]"
};

Jak zapytac o renderowana lokalizacje elementow HTML?

Po renderowaniu, IronPDF moze dokladnie podac, na ktorej stronie i pod jakimi wspolrzednymi znalazl sie dany element HTML. To zastepuje starszy sposob renderowania najpierw, wyodrebniania tekstu i recznego przeszukiwania stron.

Ustaw ElementQuerySelectors na RenderingOptions przed renderowaniem, a następnie wywołaj GetElementLocations na uzyskanym PdfDocument:

using IronPdf;
using System;

var renderer = new ChromePdfRenderer();

// Configure which elements should be queryable after rendering
renderer.RenderingOptions.ElementQuerySelectors = new[] { "h1", ".kpi-card" };

var html = @"
<h1>Q4 Dashboard</h1>
<div class='kpi-card'>Revenue: $1.2M</div>
<div class='kpi-card'>Growth: 18%</div>
<h1>Q3 Comparison</h1>
<div class='kpi-card'>Previous: $1.0M</div>";

var pdf = renderer.RenderHtmlAsPdf(html);

// Retrieve the rendered page location of each matched element
foreach (var location in pdf.GetElementLocations())
{
    Console.WriteLine($"'{location.Text}' on page {location.PageIndex + 1} " +
                      $"at ({location.Rectangle.X}, {location.Rectangle.Y})");
}

pdf.SaveAs("dashboard.pdf");

GetElementLocations zwraca obiekt List<RenderedElementLocation> zawierający jeden wpis na każdy dopasowany element:

WłaściwośćTypCo on ci mowi
TextstringTekst wewnetrzny elementu.
PageIndexintNa ktorej stronie znalazl sie element (liczac od 0).
RectangleIronSoftware.Drawing.RectanglePozycja elementu na stronie, w punktach PDF (1/72 cala). Punkt poczatkowy to dol-lewy.
ElementIndexintKolejnosc elementu w oryginalnym HTML (liczac od 0).
Porady: Wyniki sa buforowane przy pierwszym wywolaniu. Jeśli modyfikujesz adnotacje dokumentu po renderowaniu i potrzebujesz nowych współrzędnych, wywołaj ResetElementLocationCache, aby wymusić ponowne przeskanowanie przy kolejnym wywołaniu GetElementLocations.

Laczenie automatycznych zakladek z sledzeniem lokalizacji elementow

Automatyczne zakladki i zapytania o lokalizacje elementow moga byc polaczone w jednym renderowaniu. Na przykład, tworząc kontur z nagłówków h1/h2 i śledząc położenie stron elementów .invoice-total:

using IronPdf;
using System;

var renderer = new ChromePdfRenderer();

// Auto-generate bookmarks from top-level headings only
renderer.RenderingOptions.AutoBookmarksFromHeadings = true;
renderer.RenderingOptions.AutoBookmarkMaxHeadingLevel = 2;

// Also track the page location of invoice totals after rendering
renderer.RenderingOptions.ElementQuerySelectors = new[] { ".invoice-total" };

var html = @"
<h1>Invoice #2026-001</h1>
<h2>Line Items</h2>
<p>Services rendered for Q1.</p>
<p class='invoice-total'>Subtotal: $4,500.00</p>
<h1>Invoice #2026-002</h1>
<h2>Line Items</h2>
<p>Consulting hours for Q2.</p>
<p class='invoice-total'>Subtotal: $7,200.00</p>";

var pdf = renderer.RenderHtmlAsPdf(html);

// Bookmarks are populated automatically; locations can be queried after rendering
foreach (var location in pdf.GetElementLocations())
{
    Console.WriteLine($"{location.Text} appears on page {location.PageIndex + 1}");
}

pdf.SaveAs("invoices.pdf");

Jak można pobierac i nawigowac po istniejących zakladkach?

IronPDF umożliwia łatwe pobieranie i przeglądanie zakladek w dokumencie PDF. Nawigowanie po drzewie zakladek jest proste i zapewnia plynnosc dostepu do różnych sekcji. Ta funkcjonalność jest niezbędna podczas pracy z istniejącymi plikami PDF wymagajacymi edycji lub w przypadku wdrazania funkcji takich jak wyszukiwanie i zastepowanie tekstu w obrębie zrodlowych sekcji zakladek. Rozwaz przykład dokumentu z zakladkami wielowarstwowymi powyzej.

Zakładka "Egzamin" ma właściwość Children, która wskazuje na zakładki "Data1" i "Data2". Zakładka "Data1" ma właściwość NextBookmark, która wskazuje na zakładkę "Data2". Dodatkowo, zakładka "Data1" ma właściwość Children zawierającą zakładkę "Papier". Ta powiazana struktura pozwala na wyrafinowane wzorce nawigacyjne i organizacje dokumentu.

Aby uzyskać wszystkie zakładki w otwartym dokumencie PDF, użyj metody GetAllBookmarks. Zapewnia to szereg wszystkich zakladek, pozwalając analizowac pełna strukture zakladek i wykorzystywac calą:

using IronPdf;

// Load existing PDF document
PdfDocument pdf = PdfDocument.FromFile("multiLayerBookmarks.pdf");

// Retrieve bookmarks list
var mainBookmark = pdf.Bookmarks.GetAllBookmarks();
Zwróć uwagę: Laczenie dwoch dokumentów PDF o identycznych nazwach zakladek może zaburzyc liste zakladek.
Ostrzeżenie: Obslugiwane sa tylko zakladki utworzone na podstawie indeksow stron. Zakładki z innych elementów PDF będą miały swoją wartość indeksu strony ustawioną na -1.

Dowiedz sie, jak stworzyć spis treści podczas generowania PDF z HTML w następnym artykułe: "Tworzenie spisu treści z IronPDF."

Gotowy, aby sprawdzić, co jeszcze możesz zrobić? Zapoznaj się z naszą stroną z samouczkami tutaj: Organizowanie plików PDF

Często Zadawane Pytania

Jak dodac zakladki do dokumentu PDF w C#?

IronPDF umożliwia latwe dodawanie zakladek do dokumentow PDF w C#. Mozesz uzyc metody AddBookmarkAtEnd, aby dodac jedno-warstwowe zakladki, okreslajac nazwe zakladki i indeks strony. Na przyklad: pdf.Bookmarks.AddBookMarkAtEnd('Rozdzial 1', 1). To tworzy nawigacyjne pomoce podobne do spisu tresci, ktore umożliwiaja uzytkownikom szybkie przeskakiwanie do kluczowych sekcji.

Jaka jest roznica miedzy metodami AddBookmarkAtEnd a AddBookmarkAtStart?

IronPDF zapewnia dwie metody umieszczania zakladek. Metoda AddBookMarkAtEnd dodaje zakladki na koncu istniejacej listy zakladek, podczas gdy AddBookMarkAtStart wstawia zakladki na poczatku listy. Obie metody odnosza sie do konkretnych indeksow stron dla precyzyjnej nawigacji w dokumencie.

Czy moge tworzyc hierarchiczne struktury zakladek z wieloma poziomami?

Tak, IronPDF umożliwia tworzenie wielowarstwowych hierarchii zakladek w strukturze drzewa. Jest to szczegolnie przydatne do organizowania zlozonych dokumentow z zagniezdzonymi sekcjami, podobnie jak w przypadku struktury szczegolowego spisu tresci z rozdzialami i podrozdzialami.

Czy funkcjonalnosc zakladek jest kompatybilna z roznymi systemami operacyjnymi?

Funkcja zakladek w IronPDF dziala bezproblemowo w srodowiskach Windows, Linux i macOS. Mozesz dodawac, edytowac i zarzadzac zakladkami PDF bez wzgledu na system operacyjny, zapewniajac stala funkcjonalnosc na roznych platformach.

Jakie operacje moge wykonywac na istniejacych zakladkach PDF?

Z IronPDF mozesz wykonywac rozne operacje na istniejacych konturach PDF, w tym dodawanie nowych zakladek, zmiane ich kolejnosci, edycje wlasciwosci zakladek i usuwanie niechcianych zakladek. To daje ci pelna kontrole nad organizacja i struktura twoich plikow PDF.

Jak sa wyswietlane zakladki, kiedy uzytkownicy otwieraja PDF?

W Adobe Acrobat Reader i podobnych przegladarkach PDF zakladki utworzone za pomoca IronPDF pojawiaja sie jako kontury w lewym bocznym panelu. Dzialaja one jako interaktywny spis tresci, umożliwiajac czytelnikom efektywna nawigacje po zlozonych dokumentach poprzez klikniecie, aby przeskoczyc do konkretnych sekcji.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 20,667,543Wersja:2026.7właśnie wydany

Odbierz swój BEZPŁATNY

30-dniowy klucz próbny natychmiast.

bullet_checkedNie wymaga karty kredytowej ani tworzenia konta
test_punktorówTestuj w produkcji
bez znaków wodnych
kalendarz_punktorów30 dni w pełni
funkcjonalny produkt
wsparcie_punktorów24/5 wsparcie techniczne
w trakcie okresu próbnego
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.7

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz opcję Przeglądaj i wyszukaj „IronPdf”
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.7

Pobierz teraz

lub pobierz instalator Windows tutaj.

  1. Pobierz i rozpakuj IronPDF do lokalizacji takiej jak ~/Libs w katalogu Solution
  2. W Eksploratorze rozwiązań programu Visual Studio kliknij prawym przyciskiem myszy opcję Odwołania. Wybierz opcję Przeglądaj, „IronPdf.dll”

Licencje od 749 USD

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta