Inhaltsverzeichnisse in C#35 einfügen
IronPDF ermöglicht es Ihnen, ein Inhaltsverzeichnis zu PDF-Dokumenten in C# hinzuzufügen, indem Sie die Eigenschaft TableOfContents festlegen, die automatisch eine verknüpfte Navigation aus HTML-Überschriften (h6) mit optionalen Seitenzahlen generiert.
Schnellstart: Inhaltsverzeichnis zu PDF in C# hinzufügen
-
Installieren Sie IronPDF mit NuGet Package Manager
-
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"); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronPDF in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Minimaler Arbeitsablauf (5 Schritte)
- Download der C#-Bibliothek zum Hinzufügen eines Inhaltsverzeichnisses
- Bereiten Sie das HTML zur Umwandlung in PDF vor.
- Setzen Sie die TableOfContents Eigenschaft, um das Inhaltsverzeichnis zu aktivieren
- Wählen Sie, ob Seitenzahlen angezeigt werden sollen oder nicht
- Optimieren Sie die Platzierung des Inhaltsverzeichnisses
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 Eigenschaft TableOfContents, um die Erstellung eines Inhaltsverzeichnisses im Ausgabedokument im PDF-Format zu ermöglichen. Diese Eigenschaft kann einem von drei TableOfContentsTypes zugewiesen werden, die wie folgt beschrieben werden:
None: Kein Inhaltsverzeichnis erstellenBasic: Inhaltsverzeichnis ohne Seitenzahlen erstellenWithPageNumbers: Inhaltsverzeichnis MIT Seitenzahlen erstellen
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");
Imports IronPdf
' Instantiate Renderer
Private renderer As New ChromePdfRenderer()
' Configure render options
renderer.RenderingOptions = New ChromePdfRenderOptions With {.TableOfContents = TableOfContentsTypes.WithPageNumbers}
Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("tableOfContent.html")
pdf.SaveAs("tableOfContents.pdf")
Für fortgeschrittene Szenarien können Sie das Inhaltsverzeichnis mit anderen Rendering-Optionen kombinieren, um umfassende PDF-Dokumente zu erstellen:
:path=/static-assets/pdf/content-code-examples/how-to/table-of-contents-3.cs
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");
Imports IronPdf
' Create renderer with multiple options
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions = New ChromePdfRenderOptions With {
' 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
Dim htmlContent As String = "
<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>
"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("document-with-toc.pdf")
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.
Die Verwendung der Methode Merge am Dokument wird die Hyperlinks des Inhaltsverzeichnisses brechen.
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.
Die Iron Suite spielt eine entscheidende Rolle in unseren Operationen. Diese Werkzeuge erhöhen die Effizienz im gesamten Unternehmen, einschließlich der Erstellung von Grundrissen und der Verbesserung des Bestandsmanagements.
Wo soll ich das Inhaltsverzeichnis in meiner PDF-Datei platzieren?
- Stellen Sie sicher, dass das HTML-Dokument über die korrekten Header-Tags verfügt (
h1bish6). - 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>
- 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>
<div id="ironpdf-toc"></div>
<div style="page-break-after: always;"></div>
<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>
<div id="ironpdf-toc"></div>
<div style="page-break-after: always;"></div>
<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>
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.
Zusätzlich können Stiländerungen mit der Eigenschaft CustomCssUrl vorgenommen werden. Laden Sie zunächst eine CSS-Datei herunter, die das Original-Styling für das unten stehende Inhaltsverzeichnis enthält.
Derzeit wird nicht empfohlen, die Eigenschaften page-break-before und page-break-after beim Styling des Inhaltsverzeichnisses zu überschreiben, da dies die Seitenzahlenberechnung beeinträchtigt. Die aktuelle Implementierung erwartet, dass sich das Inhaltsverzeichnis auf separaten Seiten von anderen Dokumentinhalten befindet.)}]
: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");
Imports IronPdf
Imports System.IO
' Instantiate Renderer
Private renderer As New ChromePdfRenderer()
' Configure render options
renderer.RenderingOptions = New ChromePdfRenderOptions With {
.TableOfContents = TableOfContentsTypes.WithPageNumbers,
.CustomCssUrl = "./custom.css"
}
' Read HTML text from file
Dim html As String = File.ReadAllText("tableOfContent.html")
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("tableOfContents.pdf")
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 dem H1-Header im Inhaltsverzeichnis einen anderen Stil zuzuweisen. Ersetzen Sie h1 mit h2 bis h6, um den Stil für jeden entsprechenden Header zu ändern.
#ironpdf-toc ul li.h1 {
font-style: italic;
font-weight: bold;
}
Wie kann ich die Schriftfamilie ändern?
Mit den Selektoren '#ironpdf-toc li .title' und '#ironpdf-toc li .page' ist es möglich, die Schriftart 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;
}
Wie kann ich die Einrückung steuern?
Einzug kann mit dem :root-Selektor gesteuert werden. Dieser Wert bestimmt die Einzugsmenge für jede Header-Ebene (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;
}
Wie kann ich die gepunkteten Linien entfernen oder anpassen?
Um die gepunkteten Linien zwischen dem Header-Titel und der Seitenzahl zu entfernen, modifizieren 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;
}
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.

