Wie man ein Inhaltsverzeichnis in C# | IronPDF hinzufügt

Inhaltsverzeichnisse in C#35 einfügen

This article was translated from English: Does it need improvement?
Translated
View the article in English

Mit IronPDF können Sie PDF-Dokumenten in C# ein Inhaltsverzeichnis hinzufügen, indem Sie die TableOfContents-Eigenschaft setzen, die automatisch eine Hyperlink-Navigation aus HTML-Überschriften (h1-h6) mit optionalen Seitenzahlen erzeugt.

Als-Überschrift:2(Schnellstart: Inhaltsverzeichnis zu PDF in C# hinzufügen)

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronPDF mit dem NuGet-Paketmanager.

    PM > Install-Package IronPdf

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    new ChromePdfRenderer { RenderingOptions = { CreateOutlineMaps = true, OutlineMapsFormat = TableOfContentsTypes.WithPageNumbers, FirstPageNumber = 1 } }
        .RenderHtmlFileAsPdf("myDocument.html")
        .SaveAs("withToc.pdf");
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronPDF in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer


Was ist ein Inhaltsverzeichnis in PDF?

Ein Inhaltsverzeichnis (TOC) ist ein Fahrplan, der dem Leser hilft, durch den Inhalt des PDF-Dokuments zu navigieren. Es erscheint typischerweise am Anfang und listet die Hauptabschnitte oder Kapitel des PDFs auf, zusammen mit den Seitenzahlen, auf denen jeder Abschnitt beginnt. Dies ermöglicht es den Lesern, schnell bestimmte Teile des Dokuments zu finden und darauf zu springen, und erleichtert den Zugriff auf die benötigten Informationen.

IronPDF bietet eine Funktion, um ein Inhaltsverzeichnis mit Hyperlinks zu den 'h1', 'h2', 'h3', 'h4', 'h5' und 'h6'-Elementen zu erstellen. Das Standardstyling dieses Inhaltsverzeichnisses wird nicht mit anderen Stilen im HTML-Inhalt kollidieren. Wenn Sie mit IronPDF neue PDFs erstellen, scannt die Inhaltsverzeichnisfunktion automatisch Ihre HTML-Kopfzeilen und erstellt eine hierarchische Navigationsstruktur, die die Organisation Ihres Dokuments widerspiegelt.

Das generierte Inhaltsverzeichnis enthält anklickbare Links, die es dem Leser ermöglichen, direkt zu einem beliebigen Abschnitt zu springen, was besonders für lange Dokumente, Berichte und technische Dokumentationen nützlich ist. Die TOC-Implementierung von IronPDF bewahrt die semantische Struktur Ihres HTML und bietet gleichzeitig professionelle PDF-Navigationsmöglichkeiten.

Wie füge ich ein Inhaltsverzeichnis zu meiner PDF-Datei hinzu?

Verwenden Sie die TableOfContents-Eigenschaft, um die Erstellung eines Inhaltsverzeichnisses im Ausgabepdf zu aktivieren. Diese Eigenschaft kann auf einen von drei TableOfContentsTypes gesetzt werden, die wie folgt beschrieben werden:

  • None: Kein Inhaltsverzeichnis erstellen
  • Basic: Erstellen eines Inhaltsverzeichnisses ohne Seitenzahlen
  • WithPageNumbers: Erstellen eines Inhaltsverzeichnisses MIT Seitenzahlen

Diese Funktion verwendet JavaScript, um das Inhaltsverzeichnis zu erstellen; daher muss die Engine JavaScript aktiviert haben. Bei der Konvertierung von HTML-Dateien in PDF verarbeitet die JavaScript-Engine von IronPDF Ihre Header-Tags und erzeugt die entsprechende Navigationsstruktur. Um diese Funktion besser zu verstehen, laden Sie die Beispiel-HTML-Datei unten herunter:

Welchen Code benötige ich für die Erstellung des Inhaltsverzeichnisses?

:path=/static-assets/pdf/content-code-examples/how-to/table-of-contents.cs
using IronPdf;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Configure render options
renderer.RenderingOptions = new ChromePdfRenderOptions
{
    // Enable table of content feature
    TableOfContents = TableOfContentsTypes.WithPageNumbers,
};

PdfDocument pdf = renderer.RenderHtmlFileAsPdf("tableOfContent.html");

pdf.SaveAs("tableOfContents.pdf");
$vbLabelText   $csharpLabel

Für fortgeschrittene Szenarien können Sie das Inhaltsverzeichnis mit anderen Rendering-Optionen kombinieren, um umfassende PDF-Dokumente zu erstellen:

using IronPdf;

// Create renderer with multiple options
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions = new ChromePdfRenderOptions
{
    // Enable table of contents with page numbers
    TableOfContents = TableOfContentsTypes.WithPageNumbers,

    // Add margins for better formatting
    MarginTop = 40,
    MarginBottom = 40,

    // Enable JavaScript for dynamic content
    EnableJavaScript = true,

    // Set paper orientation
    PaperOrientation = PdfPaperOrientation.Portrait,

    // Add first page number offset
    FirstPageNumber = 1
};

 // Convert HTML with multiple header levels
string htmlContent = @"
<h1>Introduction</h1>
<p>Welcome to our comprehensive guide...</p>

<h2>Chapter 1: Getting Started</h2>
<p>Let's begin with the basics...</p>

<h3>1.1 Prerequisites</h3>
<p>Before we start, ensure you have...</p>

<h2>Chapter 2: Advanced Topics</h2>
<p>Now let's explore more complex features...</p>
";

PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("document-with-toc.pdf");
using IronPdf;

// Create renderer with multiple options
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions = new ChromePdfRenderOptions
{
    // Enable table of contents with page numbers
    TableOfContents = TableOfContentsTypes.WithPageNumbers,

    // Add margins for better formatting
    MarginTop = 40,
    MarginBottom = 40,

    // Enable JavaScript for dynamic content
    EnableJavaScript = true,

    // Set paper orientation
    PaperOrientation = PdfPaperOrientation.Portrait,

    // Add first page number offset
    FirstPageNumber = 1
};

 // Convert HTML with multiple header levels
string htmlContent = @"
<h1>Introduction</h1>
<p>Welcome to our comprehensive guide...</p>

<h2>Chapter 1: Getting Started</h2>
<p>Let's begin with the basics...</p>

<h3>1.1 Prerequisites</h3>
<p>Before we start, ensure you have...</p>

<h2>Chapter 2: Advanced Topics</h2>
<p>Now let's explore more complex features...</p>
";

PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("document-with-toc.pdf");
$vbLabelText   $csharpLabel

Wie sieht die generierte PDF-Datei aus?

Das Inhaltsverzeichnis wird mit Hyperlinks zu jedem der 'h1', 'h2', 'h3', 'h4', 'h5' und 'h6' erstellt. Die hierarchische Struktur Ihrer Überschriften wird beibehalten, wobei die Unterüberschriften ordnungsgemäß unter ihren übergeordneten Abschnitten eingerückt werden. Sie können auch Seitenzahlen zu Ihrer PDF-Datei hinzufügen, um die Navigation neben dem Inhaltsverzeichnis zu unterstützen.

Hinweis:Die Verwendung der Merge-Methode auf dem Dokument wird die Hyperlinks des Inhaltsverzeichnisses zerstören.

Wenn Sie mit zusammengefassten oder geteilten PDFs arbeiten, erstellen Sie das Inhaltsverzeichnis, nachdem das Dokument vollständig zusammengestellt wurde, um genaue Seitenverweise und funktionale Hyperlinks zu gewährleisten.


Wo soll ich das Inhaltsverzeichnis in meiner PDF-Datei platzieren?

  1. Achten Sie darauf, dass das HTML-Dokument die richtigen Header-Tags enthält (h1 bis h6).
  2. Optional fügen Sie ein div hinzu, wo Sie möchten, dass das Inhaltsverzeichnis erscheint. Wenn das untenstehende div nicht bereitgestellt wird, wird IronPDF das Inhaltsverzeichnis am Anfang einfügen.
<div id="ironpdf-toc"></div>
<div id="ironpdf-toc"></div>
HTML
  1. Wählen Sie in den Renderoptionen, das Inhaltsverzeichnis entweder mit oder ohne Seitenzahlen zu rendern.

Bei Dokumenten mit komplexem Layout sollte das Inhaltsverzeichnis mit Kopf- und Fußzeilen kombiniert werden, um eine professionelle Dokumentstruktur zu schaffen. Hier ist ein Beispiel für die richtige HTML-Struktur für eine optimale TOC-Erstellung:

<!DOCTYPE html>
<html>
<head>
    <title>My Document</title>
</head>
<body>
    <!-- Table of Contents placeholder -->
    <div id="ironpdf-toc"></div>

    <!-- Page break after TOC -->
    <div style="page-break-after: always;"></div>

    <!-- Main content starts here -->
    <h1>Executive Summary</h1>
    <p>This document provides...</p>

    <h2>Market Analysis</h2>
    <h3>Current Trends</h3>
    <p>The market shows...</p>

    <h3>Future Projections</h3>
    <p>We anticipate...</p>

    <h2>Recommendations</h2>
    <p>Based on our analysis...</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
    <title>My Document</title>
</head>
<body>
    <!-- Table of Contents placeholder -->
    <div id="ironpdf-toc"></div>

    <!-- Page break after TOC -->
    <div style="page-break-after: always;"></div>

    <!-- Main content starts here -->
    <h1>Executive Summary</h1>
    <p>This document provides...</p>

    <h2>Market Analysis</h2>
    <h3>Current Trends</h3>
    <p>The market shows...</p>

    <h3>Future Projections</h3>
    <p>We anticipate...</p>

    <h2>Recommendations</h2>
    <p>Based on our analysis...</p>
</body>
</html>
HTML

Wie gestalte ich das Inhaltsverzeichnis?

Das Inhaltsverzeichnis kann mit CSS gestylt werden, indem die verschiedenen CSS-Selektoren angesprochen werden, die den Stil des Inhaltsverzeichnisses definieren. Bei der Verwaltung von Schriftarten in Ihrer PDF-Datei übernimmt das Inhaltsverzeichnis standardmäßig die Schrifteinstellungen Ihres Dokuments, kann aber unabhängig davon angepasst werden.

Darüber hinaus können Styling-Änderungen mit der CustomCssUrl-Eigenschaft vorgenommen werden. Laden Sie zunächst eine CSS-Datei herunter, die das Original-Styling für das unten stehende Inhaltsverzeichnis enthält.

WarnungZurzeit ist es nicht empfehlenswert, die Eigenschaften page-break-before und page-break-after bei der Gestaltung des Inhaltsverzeichnisses zu überschreiben, da dies die Berechnung der Seitenzahl stört. Die derzeitige Implementierung sieht vor, dass das Inhaltsverzeichnis auf einer vom übrigen Inhalt des Dokuments getrennten Seite steht.

:path=/static-assets/pdf/content-code-examples/how-to/table-of-contents-overwrite-styling.cs
using IronPdf;
using System.IO;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Configure render options
renderer.RenderingOptions = new ChromePdfRenderOptions
{
    // Enable table of content feature
    TableOfContents = TableOfContentsTypes.WithPageNumbers,
    CustomCssUrl = "./custom.css"
};

// Read HTML text from file
string html = File.ReadAllText("tableOfContent.html");
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs("tableOfContents.pdf");
$vbLabelText   $csharpLabel

Wenn Sie mit angepassten Papierformaten arbeiten, müssen Sie möglicherweise die Gestaltung des Inhaltsverzeichnisses anpassen, um unterschiedliche Seitengrößen zu berücksichtigen und den richtigen Textfluss und Seitenumbruch zu gewährleisten.

Wie gestalte ich verschiedene Überschriftenebenen?

Verwenden Sie den '#ironpdf-toc ul li.h1' Selektor, um ein anderes Styling für den H1-Header im Inhaltsverzeichnis anzuwenden. Ersetzen Sie 'h1' durch 'h2' bis 'h6', um das Styling für jeden entsprechenden Header zu ändern.

 #ironpdf-toc ul li.h1 {
    font-style: italic;
    font-weight: bold;
 }
Gestaltetes Inhaltsverzeichnis mit gepunkteten Überschriften, die hierarchische Kapitel und Abschnitte mit Seitenzahlen verbinden

Wie kann ich die Schriftfamilie ändern?

Mit den Selektoren '#ironpdf-toc li .title' und '#ironpdf-toc li .page' ist es möglich, die Schriftfamilie des Inhaltsverzeichnisses zu überschreiben. Verwenden Sie dazu die kursive Schriftart für den Titel und nutzen Sie das @font-face-Attribut, um die benutzerdefinierte Schriftart 'Lemon' zu verwenden, die von Eduardo Tunni entworfen wurde.

 #ironpdf-toc li .title {
    order: 1;
    font-family: cursive;
 }

 @font-face {
    font-family: 'lemon';
    src: url('Lemon-Regular.ttf')
 }

 #ironpdf-toc li .page {
    order: 3;
    font-family: 'lemon', sans-serif;
 }
Inhaltsverzeichnis mit Kapiteln, Abschnitten und Lektionen mit gepunkteten Leitern und rechtsbündigen Seitenzahlen

Wie kann ich die Einrückung steuern?

Die Einrückung kann mit dem Selektor :root gesteuert werden. Dieser Wert bestimmt die Höhe der Einrückung für jede Kopfebene (h1, h2, ...) im Inhaltsverzeichnis. Sie kann nach Bedarf erhöht werden oder keine Einrückung haben mit einem Wert von 0.

:root {
    --indent-length: 25px;
}
Inhaltsverzeichnis mit benutzerdefinierten eingerückten Kapiteln, Abschnitten und Lektionen mit gepunkteten Leitern zu Seitenzahlen

Wie kann ich die gepunkteten Linien entfernen oder anpassen?

Um die gepunkteten Linien zwischen dem Header-Titel und der Seitenzahl zu entfernen, ändern Sie das Hintergrundbild des ::after-Selektors. In der Originalformatierung ist der zweite Parameter "currentcolor 1px". Ändern Sie es in "transparent 1px", um die Punkte zu entfernen. Es ist wichtig, auch andere Attribute anzugeben, da in diesem Selektor das neue Styling das alte Styling vollständig überschreiben wird, anstatt es nur hinzuzufügen.

 #ironpdf-toc li::after {
    background-image: radial-gradient(circle, transparent 1px, transparent 1.5px);
    background-position: bottom;
    background-size: 1ex 4.5px;
    background-repeat: space no-repeat;
    content: "";
    flex-grow: 1;
    height: 1em;
    order: 2;
 }
Inhaltsverzeichnis mit Kapiteln, Abschnitten und Lektionen mit hierarchischer Einrückung und rechtsbündigen Seitenzahlen

Für fortgeschrittene Styling-Optionen können Sie benutzerdefinierte Führungslinien mit verschiedenen Mustern erstellen:

/* Dashed line leader */
#ironpdf-toc li::after {
    background-image: linear-gradient(to right, currentcolor 50%, transparent 50%);
    background-size: 8px 1px;
    background-repeat: repeat-x;
    background-position: bottom;
}

/* Solid line leader */
#ironpdf-toc li::after {
    border-bottom: 1px solid currentcolor;
    background: none;
}

Bereit zu sehen, was Sie sonst noch tun können? Schauen Sie sich unsere Tutorial-Seite hier an: PDFs konvertieren

Häufig gestellte Fragen

Wie füge ich ein Inhaltsverzeichnis zu meinem PDF-Dokument hinzu?

Sie können Ihrer PDF-Datei mit IronPDF ein Inhaltsverzeichnis hinzufügen, indem Sie die TableOfContents-Eigenschaft im ChromePdfRenderer festlegen. Setzen Sie einfach RenderingOptions.TableOfContents entweder auf TableOfContentsTypes.Basic für ein Inhaltsverzeichnis ohne Seitenzahlen oder auf TableOfContentsTypes.WithPageNumbers, um Seitenzahlen einzufügen. IronPDF generiert das Inhaltsverzeichnis automatisch aus Ihren HTML-Kopfzeilen (h1-h6-Tags).

Welche HTML-Elemente werden zur Erstellung des Inhaltsverzeichnisses verwendet?

IronPDF erstellt das Inhaltsverzeichnis automatisch, indem es die h1-, h2-, h3-, h4-, h5- und h6-Kopfelemente in Ihrem HTML-Code scannt und verwendet. Diese Überschriften bilden eine hierarchische Navigationsstruktur, die die Organisation Ihres Dokuments widerspiegelt, wobei jede Überschrift zu einem anklickbaren Hyperlink im Inhaltsverzeichnis der generierten PDF-Datei wird.

Kann ich Seitenzahlen in das Inhaltsverzeichnis aufnehmen?

Ja, IronPDF bietet zwei Optionen für Inhaltsverzeichnisse: TableOfContentsTypes.Basic erstellt ein Inhaltsverzeichnis ohne Seitenzahlen, während TableOfContentsTypes.WithPageNumbers Seitenzahlen für jeden Abschnitt enthält. Sie können die Option wählen, die am besten zu den Anforderungen Ihres Dokuments passt, wenn Sie die RenderingOptions einstellen.

Benötigt die Funktion des Inhaltsverzeichnisses JavaScript?

Ja, IronPDF verwendet JavaScript zur Erstellung des Inhaltsverzeichnisses, so dass die Rendering-Engine JavaScript aktiviert haben muss. Normalerweise ist dies standardmäßig aktiviert, aber wenn Sie JavaScript in Ihren Rendering-Optionen deaktiviert haben, müssen Sie es aktivieren, damit das Inhaltsverzeichnis richtig funktioniert.

Wie kann ich das Inhaltsverzeichnis mit Seitenzahlen in einer Codezeile einrichten?

Sie können ein PDF mit einem Inhaltsverzeichnis einschließlich Seitenzahlen mit dieser einzigen Zeile erzeugen: new ChromePdfRenderer { RenderingOptions = { TableOfContents = TableOfContentsTypes.WithPageNumbers, FirstPageNumber = 1 } }.RenderHtmlFileAsPdf("myDocument.html").SaveAs("withToc.pdf"); Dies erzeugt ein voll funktionsfähiges Inhaltsverzeichnis mit Hyperlink-Navigation und Seitenzahlen.

Wird die Gestaltung des Inhaltsverzeichnisses mit meinen bestehenden HTML-Stilen kollidieren?

Nein, das Standard-Inhaltsverzeichnis von IronPDF ist so gestaltet, dass es nicht mit anderen Stilen in Ihrem HTML-Inhalt kollidiert. Das generierte Inhaltsverzeichnis behält sein eigenes, separates Styling bei, das die korrekte Anzeige gewährleistet und gleichzeitig das Erscheinungsbild des vorhandenen Dokumentinhalts beibehält.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 17,012,929 | Version: 2025.12 gerade veröffentlicht